Package updated but not in registry

I recently updated HasseDiagrams to version 0.1.1. See this entry in JuliaRegistries and this entry in JuliaHub. No errors were reported in the attempted registration.

And yet the update doesn’t seem to be in the registry more than a day later.

(@v1.10) pkg> up
    Updating registry at `~/.julia/registries/General.toml`
  No Changes to `~/.julia/environments/v1.10/Project.toml`
  No Changes to `~/.julia/environments/v1.10/Manifest.toml`

(@v1.10) pkg> status HasseDiagrams
Status `~/.julia/environments/v1.10/Project.toml`
  [eda30fb7] HasseDiagrams v0.1.0

I also tried the recommendation here about checking the registry with this result:

julia> check_package_versions("HasseDiagrams", "https://github.com/scheinerman/HasseDiagrams.jl")
Cloning into '/var/folders/dg/2jhjk10s2kn7jlljs7qm4z140000gn/T/jl_AkC09E'...
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (306/306), done.
remote: Compressing objects: 100% (202/202), done.
remote: Total 306 (delta 142), reused 244 (delta 83), pack-reused 0 (from 0)
Receiving objects: 100% (306/306), 611.44 KiB | 6.95 MiB/s, done.
Resolving deltas: 100% (142/142), done.
HasseDiagrams: v0.0.1 found
HasseDiagrams: v0.0.2 found
HasseDiagrams: v0.1.0 found
3-element Vector{@NamedTuple{pkg_name::String, version::VersionNumber, found::Bool}}:
 (pkg_name = "HasseDiagrams", version = v"0.0.1", found = 1)
 (pkg_name = "HasseDiagrams", version = v"0.0.2", found = 1)
 (pkg_name = "HasseDiagrams", version = v"0.1.0", found = 1)

Thoughts?

1 Like

You might want to try the “eager” registry flavor: 7. Registries · Pkg.jl

Other possible explanations is that there is some other problem with the package servers or that your copy of the registry has become stuck for some reason, but usually these problems have to do with overload of the storage server backend for the package servers, typically because it needs to process large artifacts.

1 Like

Thank you.

This worked, thought I’ve never seen this issue before.

julia> ENV["JULIA_PKG_SERVER_REGISTRY_PREFERENCE"] = "eager"
"eager"

(@v1.10) pkg> up
...
   Installed HasseDiagrams ───────── v0.1.1
...
  [eda30fb7] ↑ HasseDiagrams v0.1.0 ⇒ v0.1.1
...

And if I restart Julia and do an update, it downgrades packages (taking HasseDiagrams back to 0.1.0).

I’m guessing there’s a problem/delay with the “conservative” package server.

Those delays happen occasionally but if you’re not specifically looking for a freshly registered package or package version you wouldn’t notice.

Actually, I’ve noticed that no packages have been updating so I suspect there’s a clog in a pipe somewhere. When I “eagerly” update other packages besides mine are updated as well, but not when “conservative”.

Same problem here. I cannot get the latest version of ControlPlots.

This fixed the issue for me, but it is still annoying. Never encountered such a long update delay before.

I am putting this line:

export JULIA_PKG_SERVER_REGISTRY_PREFERENCE="eager"

now in the scripts that build my system images. Could that have any disadvantage?

1 Like

Just as one example, if you are behind a firewall that allows the Julia package server domains but blocks e.g. GitHub’s domains, then you should use the conservative flavor of the registry (not the eager flavor).

In many other cases, it is perfectly fine to use the eager flavor.

1 Like

Btw, I would be happy to change the default to eager so long as we have a way to detect that GitHub is unreachable and the user may be behind a firewall and we can give specific instructions for how to opt into a conservative registry.