Description
I really like the new status --outdated
feature coming in Julia 1.8! It relieves a serious pain point that's been bothering some of us for years. Thanks!
There is a minor weirdness about it, though: in some cases it keeps telling me
Info Some packages have new versions but cannot be upgraded. To see why use
status --outdated
But entering that command shows no packages:
$ julia-master
_
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.8.0-DEV.1558 (2022-02-15)
_/ |\__'_|_|_|\__'_| | Commit 9542577c88* (0 days old master)
|__/ |
(@v1.8) pkg> update
Updating registry at `~/.julia/registries/General`
Updating git-repo `https://github.com/JuliaRegistries/General.git`
No Changes to `~/.julia/environments/v1.8/Project.toml`
No Changes to `~/.julia/environments/v1.8/Manifest.toml`
Info Some packages have new versions but cannot be upgraded. To see why use `status --outdated`
(@v1.8) pkg> status --outdated
Status `~/.julia/environments/v1.8/Project.toml`
(@v1.8) pkg> status
Status `~/.julia/environments/v1.8/Project.toml`
[6e4b80f9] BenchmarkTools v1.3.1
[c3a54625] JET v0.5.6
[f1435218] Oscar v0.8.1-DEV `~/.julia/dev/Oscar`
[295af30f] Revise v3.3.1
[aa65fe97] SnoopCompile v2.9.0
[e2b509da] SnoopCompileCore v2.9.0
(@v1.8) pkg>
The answer, "of course" (well... as I realize while typing this, but after having been puzzled by it for several days) is that there is a package in my manifest that is outdated, but it is only a dependency of one of my packages:
(v1.8) pkg> status --outdated -m
Status `/tmpbig/horn/julia_depot/environments/v1.8/Manifest.toml`
⌅ [4fe8b98c] Mongoc v0.6.2 (<v0.7.1): Polymake
I see two solutions for this:
-
don't show that message about outdated packages in this situation, i.e., if it only affects things which dependencies of the packages I actually care about.
-
detect this situation, and then change the recommendation shown to the user, and suggest to enter
status --outdated --manifest
Personally I prefer 1: I don't care about those indirect dependencies, I have to assume that the packages I use "know what they are doing".