Pkg Manager Problems after an update

I’ve recently tagged new versions of two of my packages, JuLIP.jl and NeighbourLists.jl, and all hell has broken loose now in my small package eco-system. I would be grateful for any help in unravelling this. I performed my updates in the following steps (tagging new versions via Registrator):

  • to begin, I had JuLIP@v0.7.2 and NeighbourLists@v0.4.1
  • I made some updates to both, then tagged NeighbourLists@v0.5.0
  • I then tagged JuLIP@v0.8.0
  • I then fixed the compatibility on the JuLIP.jl v0.7.x branch and. tagged JuLIP@v0.7.3

This is when my problems started. I suspect my problems can be reduced to understanding the following issue:

  • I use the package manager to create a “fresh” environment:
] generate test
] activate test
] add JuLIP
  • For some reason, JuLIP@v0.7.3 is installed and not v0.8.0 => Why?

There seems to be some incompatibility between JuLIP and NeighbourLists. I can see this, when I try to ] free JuLIP in my v1.1 environment. I then get the following error message:

ERROR: Unsatisfiable requirements detected for package NeighbourLists [2fcf5ba9]:
 NeighbourLists [2fcf5ba9] log:
 ├─possible versions are: [0.1.0, 0.2.0-0.2.2, 0.3.0-0.3.1, 0.4.0-0.4.1, 0.5.0] or uninstalled
 ├─restricted to versions * by SHIPs [07029e18], leaving only versions [0.1.0, 0.2.0-0.2.2, 0.3.0-0.3.1, 0.4.0-0.4.1, 0.5.0]
 │ └─SHIPs [07029e18] log:
 │   ├─possible versions are: 0.2.0 or uninstalled
 │   └─SHIPs [07029e18] is fixed to version 0.2.0
 ├─restricted to versions 0.3.0-* by NBodyIPs [091ff95d], leaving only versions [0.3.0-0.3.1, 0.4.0-0.4.1, 0.5.0]
 │ └─NBodyIPs [091ff95d] log:
 │   ├─possible versions are: 0.0.0 or uninstalled
 │   ├─restricted to versions 0.0.0-* by NBIPsMulti [7858835e], leaving only versions 0.0.0
 │   │ └─NBIPsMulti [7858835e] log:
 │   │   ├─possible versions are: 0.0.0 or uninstalled
 │   │   └─NBIPsMulti [7858835e] is fixed to version 0.0.0
 │   └─NBodyIPs [091ff95d] is fixed to version 0.0.0
 ├─restricted to versions 0.5.0 by an explicit requirement, leaving only versions 0.5.0
 └─found to have no compatible versions left with JuLIP [945c410c]
   └─JuLIP [945c410c] log:
     ├─possible versions are: [0.0.1, 0.1.0-0.1.1, 0.2.0-0.2.2, 0.4.0-0.4.2, 0.6.0-0.6.1, 0.7.0-0.7.3, 0.8.0] or uninstalled
     └─restricted to versions 0.8.0-0.8 by SHIPs [07029e18], leaving only versions 0.8.0
       └─SHIPs [07029e18] log: see above

I don’t understand this, since JuLIP@v0.8.0 and NeighbourLists@v0.5.0 should be compatible:

# JuLIP/Project.toml
[compat]
NeighbourLists = "≥ 0.5.0"
julia = "1"

# Neighbourlists/Project.toml
[compat]
julia = "0.7, 1"

See also the relevant files in the Registry:

update: I tried again on a clean Julia system, and same problem (v0.7.3 as opposed to v0.8.0) occurs.

The problem is this entry

https://github.com/JuliaRegistries/General/blob/f6b0c57970958a4911c0226a2e7830ee1ead7819/J/JuLIP/Compat.toml#L79-L80

It says that all versions between of JuLIP from 0.7.3 up to 1.0 are only compatible with NeighbourLists 0.3-0.4. Then the next entry

https://github.com/JuliaRegistries/General/blob/f6b0c57970958a4911c0226a2e7830ee1ead7819/J/JuLIP/Compat.toml#L82-L83

has looser compatibility but the previous one is still valid. This seems like a bug in the script that produces the PR to the General registry.

Any chance this is related to reversing the order of tags?

As a temporary fix should i just tag another version 0.8.1 of JuLIP?

That’s not gonna help because the bad compat entry will still be there.

["0.7.3-0"]
NeighbourLists = "0.3-0.4"

Should be changed to something like

["0.7.3"]
NeighbourLists = "0.3-0.4"

I see - so I should manually fork the General registry, make the change and make a PR?

Yes, that is one option, or just use the GitHub UI. But you can make the change locally first and see that things behave like they should after the change.

thanks - the change worked locally. I made the PR via the GitHub UI as you suggested.