# Shouldn't there be a warning when package can't update to latest?

**URL:** <https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446>\
**Category:** Internals & Design\
**Tags:** package\
**Created:** [December 8, 2020, 9:24am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446 "2020-12-08T09:24:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![HenriDeh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrideh/32/8316_2.png) [@HenriDeh](https://discourse.julialang.org/u/HenriDeh)\
**Post date:** [December 8, 2020, 9:24am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/1 "2020-12-08T09:24:18Z")

</div>

Hellooo,

So I just used `up Plots` which updated it to v1.7.3. When I went to the github page, I saw that the latest release was 1.9.1.  
So I used `up Plots@v1.9.1` to force installation of the latest release and to see what dependency was incompatible.

I was just thinking that it would be nice to be warned when the latest release can’t be installed. I remember when I started julia, I used Plots 0.1 for a while before noticing it…

Has this been discussed ?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 8, 2020, 9:51am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/2 "2020-12-08T09:51:05Z")

</div>

> [@HenriDeh](#):
>
> Has this been discussed ?

Yes, a couple of days ago here:

> [@Very fancy package updating 1.6](https://discourse.julialang.org/t/very-fancy-package-updating-1-6/51227/15):
>
> You are right. Sorry. It is the damn dependencies: it pulled 8.2.6, which I thought was okay. But apparently the new one is 0.9… I will then rephrase my previously stated opinion: we need some way of detecting newer package versions.

See in particular

> [@Very fancy package updating 1.6](https://discourse.julialang.org/t/very-fancy-package-updating-1-6/51227/28):
>
> [https://github.com/GunnarFarneback/PackageCompatUI.jl](https://github.com/GunnarFarneback/PackageCompatUI.jl) is also useful for this purpose. Packages that have newer versions than specified by [compat] are shown in yellow and you can update Project.toml directly from the UI. (This package is Julia 1.6 only and won’t be registered until 1.6 has been released.)

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 10:14am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/3 "2020-12-08T10:14:50Z")

</div>

If you need a specific versoin of Plots, it is recommended to put that into your Project file, for example

```julia
[compat]
Plots = "1.9"

```

will force you to get the 1.9.x version of Plots.

---

<div class="post-metadata">

**Author:** ![HenriDeh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrideh/32/8316_2.png) [@HenriDeh](https://discourse.julialang.org/u/HenriDeh)\
**Post date:** [December 8, 2020, 10:46am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/4 "2020-12-08T10:46:44Z")

</div>

Well the issue I have is more about being aware of the newest version. I don’t want to subscribe to all my packages’ mail lists.

For packages like Plots, I usually want the latest because the version is not important to my work.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 11:04am UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/5 "2020-12-08T11:04:19Z")

</div>

There could be a Pkg command that shows what packages are not on the latest version. I don’t think it should be in the default output though.

---

<div class="post-metadata">

**Author:** ![imcinerney](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imcinerney/32/9882_2.png) [@imcinerney](https://discourse.julialang.org/u/imcinerney)\
**Post date:** [December 8, 2020, 3:53pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/6 "2020-12-08T15:53:20Z")

</div>

Why not mark it in the `status` command output? That would seem to be a natural place for people to inspect the version of packages (it could even just be changing the color for packages that aren’t on the latest version).

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 4:04pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/7 "2020-12-08T16:04:45Z")

</div>

In most cases, it would not actionable by an average user. The resolver already gives you the latest versions that are possible based on your compatibility constraints.

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 8, 2020, 4:07pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/8 "2020-12-08T16:07:19Z")

</div>

For lots of users, the “constraints” are just whatever packages they happen to ever have installed. As such, knowing “I’m stuck on an old version of CSV because xyz that I tested for 5 minutes 4 months ago doesn’t support the new version” is really useful.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 4:09pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/9 "2020-12-08T16:09:05Z")

</div>

> [@Oscar\_Smith](#):
>
> I’m stuck on an old version of CSV because xyz that I tested for 5 minutes 4 months ago doesn’t support the new version” is really useful.

It’s not really recommended to put every package in one big environment for reasons like this.

Also, I agree it can be useful, that’s why I am suggesting e.g. a `--compat` flag to `status`.

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 8, 2020, 4:10pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/10 "2020-12-08T16:10:57Z")

</div>

While not recommended, I’m willing to bet that most users have at least one environment that’s their repl experimentation environment where nothing is managed. (honestly that’s probably the only environment for 80% of beginners).

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [December 8, 2020, 4:13pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/11 "2020-12-08T16:13:32Z")

</div>

Would it be so bad to have the newest version in parentheses after the actual version that was updated to?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 4:19pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/12 "2020-12-08T16:19:59Z")

</div>

I think so, yes. For example, I think a lot of new users would open issues on package repos where they do not get the latest version, even though that package is not at all to blame.

---

<div class="post-metadata">

**Author:** ![HenriDeh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/henrideh/32/8316_2.png) [@HenriDeh](https://discourse.julialang.org/u/HenriDeh)\
**Post date:** [December 8, 2020, 4:20pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/13 "2020-12-08T16:20:02Z")

</div>

Well in my case this wasn’t even the problem. The compatibility issue was coming from a GR artifact, for some reason I had to update and build it manually.  
This sort of thing can happen even if you maintain a clean environment.

Sure a flag could do it but I’d basically use it every time I update my “utility packages” e.g. those that are not core to my work but that I use to analysis.

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 8, 2020, 4:27pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/14 "2020-12-08T16:27:45Z")

</div>

What if we also put blame on the package(s) holding it back? That way we’d get issues in the right package to keep the ecosystem up to date.

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [December 8, 2020, 4:31pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/15 "2020-12-08T16:31:58Z")

</div>

> [@Oscar\_Smith](#):
>
> What if we also put blame on the package(s) holding it back?

Yeah, but now you need to put much more info in there and it is starting to get spammy. This is why I suggest a separate flag to give you all that information, _when you want it_ .

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [December 8, 2020, 5:33pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/16 "2020-12-08T17:33:27Z")

</div>

Maybe I underestimate how many people would file bug reports because of this. But in general, I’m not for keeping people uninformed by default, and on the contrary, a lot of bug reports are filed because people have for some reason not been updated to the fixed version, and don’t know.

---

<div class="post-metadata">

**Author:** ![ToucheSir](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/touchesir/32/14411_2.png) [@ToucheSir](https://discourse.julialang.org/u/ToucheSir)\
**Post date:** [December 8, 2020, 6:20pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/17 "2020-12-08T18:20:59Z")

</div>

Given how difficult the UX for something like this is, I don’t see any harm in starting with an opt-in command. Other package managers do this already, see e.g. [npm-outdated | npm Docs](https://docs.npmjs.com/cli/v6/commands/npm-outdated/).

---

<div class="post-metadata">

**Author:** ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)\
**Post date:** [December 8, 2020, 7:19pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/18 "2020-12-08T19:19:12Z")

</div>

Maybe it would also be nice to have an easier way to force installing the latest update, instead of having to look up the version number and then plugging that in. So if someone wanted to try to update to the latest version, they could do something like

```julia
]add SomePackage@latest

```

---

<div class="post-metadata">

**Author:** ![NicholasWMRitchie](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nicholaswmritchie/32/22449_2.png) [@NicholasWMRitchie](https://discourse.julialang.org/u/NicholasWMRitchie)\
**Post date:** [December 8, 2020, 8:45pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/19 "2020-12-08T20:45:18Z")

</div>

As a relatively new user (~1 yr), I can recall clearly the frustrations I felt when I first discovered that a package was being held back by another. There didn’t seem to be a good way to figure out which package was causing the hold. It would be great to have a package manager command to review all packages in the environment Project.toml and identify 1) which packages are being held behind the current release; & 2) which package is responsible for the hold. The user can then decide what to do.

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [December 8, 2020, 11:17pm UTC](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446/20 "2020-12-08T23:17:39Z")

</div>

Relevant issue: [https://github.com/JuliaLang/Pkg.jl/issues/1655](https://github.com/JuliaLang/Pkg.jl/issues/1655)

[Next page](https://discourse.julialang.org/t/shouldnt-there-be-a-warning-when-package-cant-update-to-latest/51446.md?page=2)
