The new version v1.6 creates strange problems with my packages which I can’t fix.
(@v1.6) pkg> st JLD2
[033835bb] JLD2 v0.3.3
(@v1.6) pkg> up
ERROR: Unsatisfiable requirements detected for package JLD2 [033835bb]:
JLD2 [033835bb] log:
├─JLD2 [033835bb] has no known versions!
└─restricted to versions 0.2-0.4 by NMFk [e40cd9e2] — no versions left
└─NMFk [e40cd9e2] log:
├─possible versions are: 1.1.21 or uninstalled
└─NMFk [e40cd9e2] is fixed to version 1.1.21
I do not understand why it says no versions left when the existing version of JLD2 0.3.3 is within the bounds (0.2-0.4).
resolve and rm JLD2 does not help.
What should I do to fix it?! I do not want to delete my environment and start from scratch.
I had something related. I kept deleting packages and each time a new one had a complaint. I then deleted the registry and added it back. Something similar to what @giordano illustrates. I found my solution on StackOverflow
There are no breaking changes in Pkg, not sure what you’re talking about. The transition shouldn’t be that complicated. Deleting the entire .julia depot is never a good idea and I personally don’t recommend it. The issue with the registry is more likely related to an issue during a download which caused the registry to be corrupted. It could have happened at any point.
The only general incompatibility is for manifests: a manifest generated for Julia v1.x cannot, in general, be used with Julia v1.y, with x != y. That’s it. This is the reason why the global environments are stored in different directory for different minor versions and it has always been the case in the v1 series.
Monty reported an issue with the registry, which doesn’t have anything to do with manifests.
You’re free to do whatever you feel like, but please don’t recommend to people to do operations that can cause data loss, albeit limited to Julia. Especially when the problem is limited to the registry: there is no point in deleting all packages when it’s possible to reinstall the registry with a single command without touching anything else. Developed packages are git repositories under .julia: it’s not fun to lose your local work because someone suggested you to delete the entire .julia directory unnecessarily.
Not at all. Manifests can be incompatible for different reasons:
packages can and do have different compatibilities with different minor versions: a version of package MyPackage available for Julia v1.5 may not be available for Julia v1.6, or the other way around. I’m sure you know this very well since you maintain packages with this property. In large manifests the probability that a situation like this happens is non-negligible.
Julia itself may have different standard libraries between two different minor versions. Also standard libraries are recorded in manifests, so if you try to load a manifest which has standard libraries unknown to the current version of Julia, something bad happens. It is the case that a few standard libraries were introduced in Julia v1.6, so using manifests generated with Julia v1.6 may not work with Julia v1.5-.
I’m glad you found a more convenient way to develop your packages, but other people may have different workflows. Suggesting them to delete everything without any warning about the possible consequences is very bad