I’m certain that if in the environment there aren’t compatibility bounds that prevent installation of a newer version, the package will be updated. If in your environment you’re saying “this is compatible only with version 0.8 of package ABC” then no, package ABC will not be update to v0.9, because that would be breaking according to semver. Again, this has to do with compatibility bounds, not Pkg.update
not knowing that a new version has been released
It may be that I’m not using the versions correctly. My project says
LoopVectorization = "^0.8"
What should it say so that I would have gotten 0.9 if that was available?
LoopVectorization = "0.8, 0.9"
If this is for a package, you should probably look into https://github.com/JuliaRegistries/CompatHelper.jl, which does exactly this for you
Okay, but you understand that when the package was tested last, there was no 0.9. Hence, my requirement was 0.8 since that was the latest. Now when I switch to 1.6, 0.9 becomes the latest. However, the package update will not inform me that there is a newer version to which I should upgrade if I want to run a 1.6. That is my point.
I know that the package manager doesn’t do that and I’m not convinced it’s always a good idea to show this kind of updates, casual users will probably see a lot of them and ignore them anyway. Package developers might find such feature more useful, but what I’m trying to tell you is that if you’re a package developer, CompatHelper
does exactly this with an automatic pull request to your package
I see what you’re saying. I will check it out. Thanks!
There is also https://github.com/xiaodaigh/PkgVersionHelper.jl but I have not used it. I just remember seeing it posted here.
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.)