Closed ExpandingMan closed 6 years ago
Ok, I think 0.1.1 was tagged before everything got screwed up. I'm going to try and see if I can resolve this by working from that point, so I'll re-tag now and that shouldn't affect anything.
Don't do anything rushed. Even if you added a project file with wrong uuid that should not have impacted how the package is listed in the registry.
You might be hitting https://github.com/JuliaLang/Pkg.jl/issues/645 which is a bug in the package manager. If you explain in detail the problem we can see if it is indeed https://github.com/JuliaLang/Pkg.jl/issues/645 that is causing your confusion.
There seems to be all sorts of strangeness, I can't really tell if it's #645.
Primarily two things: first, when I do dev Arrow
(with no existing Arrow directory) it pulls this commit: a3f5b5f21900c90a1b5ca4ef61fac51dbbf81279
for no apparent reason (it wasn't even one of the tagged ones). Last night, when I did git pull origin master
on Arrow and then again did dev Arrow
in the package manager, it was giving me unsatisfiable requirements. Today I'm on a different machine and am currently unable to reproduce that particular result (i.e. it still pulls a bogus commit, but I'm able to do dev Arrow
after pulling to latest).
What I started to do to attempt a solution is the following:
Project.toml
from all tagged commits. I won't restore it until PkgDev
gives me that ability.REQUIRE
Julia version (to [0.7, infinity)).Since none of those tags will have Project.toml
at all, and all of the tags I've made since I've been having problems will have been replaced I infer that the above procedure will be guaranteed to give me a working package.
(Of course in my stupidity I already made a v0.2.0 tag last night having forgotten to bump the Julia version, which mercifully now has the waiting for author
tag, so I'll cancel that.)
dev
has a bug that it might not load the latest commit, you can just git pull the latest one manually though (https://github.com/JuliaLang/Pkg.jl/issues/465).
Never delete tags that have been registered to METADATA. Don't modify the commit for existing versions registered to METADATA. Just push new tags instead.
Since they are already deleted should I proceed with what I was doing? This doesn't seem to explain why I was sometimes getting "unsatisfiable requirements" (or why I can't regularly reproduce that error, perhaps it's 645).
Yes it might be that issue. The best thing would be if you could retag the tags with the same commit as registered in METADATA.jl.
I'm really afraid to do that as those have bad Project.toml
files. At this point I'm pretty confident that tagging these later commits will work just fine for METADATA
, but I'm less confident about JuliaRegistries/General
.
I'll defer to your judgment, but considering all the problems I've had it would make me feel a lot better if we were able to replace those tags with these commits where we are completely confident that there is no package management related strangeness.
Oh, actually come to think of it we really have to try retagging. In at least one of them I had accidentally uploaded my Manifest.toml
before I put it in my .gitignore
.
Do you think this will be ok, or will this absolutely break JuliaRegistries/General
and I have to figure something else out?
(Sorry, I know my screw ups really contributed to the insanity on this.)
Having a Manifest in your package is totally ok :)
By the way, why are the git commit hashes that appear in METADATA completely different from those in JuliaRegistries/General? The latter don't even seem to be commit hashes at all, care to illuminate what's going on there?
They are tree hashes, i.e. based on the content in the repository at a snapshot instead of the history of it.
Oh wow. I noticed that you talked about that extensively in your JuliaCon talk, but I didn't realize that it meant that you can't use commit hashes.
Ok, I restored the original tags. Initially I was having the same problem, but I then deleted my entire .julia
directory and now things seem restored to normal.
If I may make a suggestion, while I have no doubt that whatever happened here was primarily my fault (perhaps with the flames of my confusion stoked by some Pkg3
bugs), it does seem that it may be relatively easy for those of us uncomfortable and unfamiliar with the immutability of tagging our own packages (that's right, I seldom do it) to arrive in this sorry state; so it would be really nice if some sort of unfuck PackageName
command were available. What I imagine this doing is
clones
, packages
and environments
to the package.I'll wait until tomorrow for the dust to clear and than make my new tags based on more recent commits, with the Project.toml
removed (because I am now paranoid about what that is doing).
And thanks for all your help @KristofferC !
@davidanthoff @kristofferC
Hey guys, sorry about this but I seem to have done a number of things to this package which seem to have conspired to completely screw up this package, and the only alternative I can see right now would be to remove it from
JuliaRegistries/General
and re-register it.So, problem the first is that somehow I managed to supply the local
Project.toml
with the wrong UUID. I'm not quite sure how I did this, as I was careful to use the UUID that seemed to be assigned to it, but I now suspect that when I did this I was using a local configuration that had not used the UUID's generated forJuliaRegistries/General
.Problem the second is that something got all screwed up by the tagging, I'm not quite sure what. It probably has something to do with a fact that at some point I deleted a tag, and recreated one with the same name. When I do
dev Arrow
in 1.0, I wind up with version 0.1.1. I am then stuck on version 0.1.1 and I cannotdev Arrow
with anything newer.So, at this point it seems that I have FUBARed things so badly that I don't see any choice but to delete all tags and remove this package from the registries, and register it again. Please let me know if you have any other ideas.