Skip to content

Mysterious "Some packages have new versions but cannot be upgraded" message #2989

Closed
@fingolfin

Description

@fingolfin

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:

  1. 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.

  2. 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".

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions