JuliaImages: retroactively put upper bounds on old package versions#7342
JuliaImages: retroactively put upper bounds on old package versions#7342DilumAluthge merged 1 commit intoJuliaRegistries:masterfrom timholy:teh/juliaimages
Conversation
|
If this PR contains changes that were made by RetroCap, and no other changes, then it is probably safe. The real issues arise when people manually edit the registry by hand. I think (but am not 100% sure) that RetroCap won't break anything. The best way to test is to add this branch as a registry and make sure you can
import Pkg
Pkg.Registry.add(Pkg.RegistrySpec(path = pwd()))
Pkg.add("Images")
Pkg.rm("Images")
Pkg.gc()
Pkg.add(Pkg.PackageSpec(name = "Images", version = "0.18.0"))
Pkg.rm("Images")
Pkg.gc()
Pkg.add(Pkg.PackageSpec(name = "Images", version = "0.19.0"))
Pkg.rm("Images")
Pkg.gc()And do that a whole bunch of times for a bunch of different packages and versions. |
|
The checkout seems to work. One oddity: (MyProj) pkg> add Images@0.18.0
Resolving package versions...
Updating `/tmp/retrocap/MyProj/Project.toml`
[916415d5] ↓ Images v0.19.1 ⇒ v0.18.0
Updating `/tmp/retrocap/MyProj/Manifest.toml`
[3da002f7] ↑ ColorTypes v0.8.1 ⇒ v0.9.0
[c3611d14] ↑ ColorVectorSpace v0.7.1 ⇒ v0.8.2
[5ae59095] ↑ Colors v0.9.6 ⇒ v0.11.1
[53c48c17] ↑ FixedPointNumbers v0.6.1 ⇒ v0.7.0
[a2bd30eb] ↓ Graphics v1.0.1 ⇒ v0.4.0
[bc367c6b] ↑ ImageMetadata v0.7.2 ⇒ v0.8.0
[916415d5] ↓ Images v0.19.1 ⇒ v0.18.0
(MyProj) pkg> add Images@0.19.0
Resolving package versions...
Updating `/tmp/retrocap/MyProj/Project.toml`
[916415d5] ↑ Images v0.18.0 ⇒ v0.19.0
Updating `/tmp/retrocap/MyProj/Manifest.toml`
[3da002f7] ↓ ColorTypes v0.9.0 ⇒ v0.8.1
[c3611d14] ↓ ColorVectorSpace v0.8.2 ⇒ v0.7.1
[5ae59095] ↓ Colors v0.11.1 ⇒ v0.9.6
[53c48c17] ↓ FixedPointNumbers v0.7.0 ⇒ v0.6.1
[bc367c6b] ↓ ImageMetadata v0.8.0 ⇒ v0.7.2
[916415d5] ↑ Images v0.18.0 ⇒ v0.19.0
(MyProj) pkg> add Images@0.17.3
Resolving package versions...
Updating `/tmp/retrocap/MyProj/Project.toml`
[916415d5] ↓ Images v0.19.0 ⇒ v0.17.3
Updating `/tmp/retrocap/MyProj/Manifest.toml`
[621f4979] ↓ AbstractFFTs v0.5.0 ⇒ v0.4.1
[b99e7846] + BinaryProvider v0.5.8
[3da002f7] ↓ ColorTypes v0.8.1 ⇒ v0.7.5
[c3611d14] ↓ ColorVectorSpace v0.7.1 ⇒ v0.6.2
[5ae59095] ↓ Colors v0.9.6 ⇒ v0.9.5
[8f4d0f93] + Conda v1.3.0
[7a1cc6ca] ↓ FFTW v1.2.0 ⇒ v0.3.0
[f5851436] - FFTW_jll v3.3.9+3
[53c48c17] ↓ FixedPointNumbers v0.6.1 ⇒ v0.5.3
[2803e5a7] ↓ ImageAxes v0.6.2 ⇒ v0.6.1
[a09fc81d] ↓ ImageCore v0.8.10 ⇒ v0.7.4
[51556ac3] ↓ ImageDistances v0.2.7 ⇒ v0.1.1
[6a3955dd] ↓ ImageFiltering v0.6.9 ⇒ v0.6.5
[787d08f9] ↓ ImageMorphology v0.2.5 ⇒ v0.1.1
[4e3cecfd] ↓ ImageShow v0.2.2 ⇒ v0.2.0
[02fcd773] ↓ ImageTransformations v0.8.1 ⇒ v0.8.0
[916415d5] ↓ Images v0.19.0 ⇒ v0.17.3
[1d5cc7b8] - IntelOpenMP_jll v2018.0.3+0
[682c06a0] + JSON v0.21.0
[856f044c] - MKL_jll v2019.0.117+0
[69de0a69] + Parsers v0.3.10
[92933f4c] + ProgressMeter v0.9.0
[81def892] + VersionParsing v1.2.0It seems to propagate the current version backwards, not the minimum of the current version and whatever upper bound was in place for a more recent release. (That is to say |
It's not perfect, but I view it as an acceptable result. If we keep our developments and rolling the versions, all these will be incompatible eventually. Sorry that I missed the CC with my notification accidentally turned off. |
|
Let me poke at RetroCap and see if I can come up with something better. |
|
OK, this new version is based on JuliaRegistries/RetroCap.jl#34. Looking through the difference between the two approaches, it seems likely to be better. However, I'm still seeing weird behavior; I'm beginning to suspect the resolver. (v1.3) pkg> add Images@0.19.0
Resolving package versions...
Updating `~/.julia/environments/v1.3/Project.toml`
[916415d5] + Images v0.19.0
Updating `~/.julia/environments/v1.3/Manifest.toml`
[3da002f7] ↓ ColorTypes v0.9.0 ⇒ v0.8.1
[c3611d14] ↓ ColorVectorSpace v0.8.2 ⇒ v0.7.1
[5ae59095] ↓ Colors v0.11.1 ⇒ v0.9.6
[53c48c17] ↓ FixedPointNumbers v0.7.0 ⇒ v0.6.1
[a2bd30eb] ↓ Graphics v1.0.1 ⇒ v0.4.0
[bc367c6b] ↓ ImageMetadata v0.8.0 ⇒ v0.7.2
[916415d5] ↓ Images v0.19.3 ⇒ v0.19.0
(v1.3) pkg> add Images@0.18.0
Resolving package versions...
Updating `~/.julia/environments/v1.3/Project.toml`
[916415d5] ↓ Images v0.19.0 ⇒ v0.18.0
Updating `~/.julia/environments/v1.3/Manifest.toml`
[3da002f7] ↑ ColorTypes v0.8.1 ⇒ v0.9.0
[c3611d14] ↑ ColorVectorSpace v0.7.1 ⇒ v0.8.2
[5ae59095] ↑ Colors v0.9.6 ⇒ v0.11.1
[53c48c17] ↑ FixedPointNumbers v0.6.1 ⇒ v0.7.0
[916415d5] ↓ Images v0.19.0 ⇒ v0.18.0Note the upgrade to Colors 0.11.1, despite the fact that here's the ["0-0.17"]
ColorVectorSpace = "0.2-0.6"
FileIO = "0-1"
FixedPointNumbers = "0.3-0.5"
ImageCore = "0.6-0.7"
ImageDistances = "0.0.2-0.1"
ImageFiltering = "0-0.6"
ImageMetadata = "0-0.7"
ImageMorphology = "0.1.1-0.1"
["0-0.18"]
AxisArrays = "0.0.0 - 0.3"
ColorTypes = "0.7.4 - 0.8"
Colors = "0.7.0 - 0.9"
Graphics = "0.0.0 - 0.4"
ImageAxes = "0.0.0 - 0.6"
ImageShow = "0.1.1 - 0.2"
ImageTransformations = "0.2.2 - 0.8"
IndirectArrays = "0.0.0 - 0.5"
MappedArrays = "0.0.0 - 0.2"
OffsetArrays = "0.0.0 - 0.11"
Reexport = "0.0.0 - 0.2"
StaticArrays = "0.0.0 - 0.12"
StatsBase = "0.14.0 - 0.32"
TiledIteration = "0.0.0 - 0.2"
julia = "0.7-1"
["0.18"]
ColorVectorSpace = "0.2.0 - 0.7"
FileIO = "0.0.0 - 1"
FixedPointNumbers = "0.3.0 - 0.6"
ImageCore = "0.6.0 - 0.8"
ImageDistances = "0.0.2 - 0.2"
ImageFiltering = "0.0.0 - 0.6"
ImageMetadata = "0.0.0 - 0.7"
ImageMorphology = "0.1.1 - 0.2"
["0.19-0"]
AxisArrays = "0.3"
FileIO = "1"
ImageAxes = "0.5-0.6"
ImageDistances = "0.2.5-0.2"
ImageFiltering = "0.6"
ImageShow = "0.1-0.2"
ImageTransformations = "0.4-0.8"
IndirectArrays = "0.5"
MappedArrays = "0.1-0.2"
OffsetArrays = "0.8-0.11"
Reexport = "0.2"
StaticArrays = "0.8-0.12"
StatsBase = "0.24-0.32"
TiledIteration = "0.2"
julia = "1"
["0.19-0.19.1"]
ColorVectorSpace = "0.6-0.7"
["0.19-0.19.2"]
ColorTypes = "0.7.4-0.8"
Colors = "0.8-0.9"
FixedPointNumbers = "0.5-0.6"
ImageCore = "0.8"
ImageMetadata = "0.6-0.7"
["0.19.0"]
Graphics = "0.4"
ImageMorphology = "0.2"
["0.19.1-0"]
Graphics = ["0.4", "1"]
ImageMorphology = "0.2.2-0.2"
["0.19.2-0"]
ColorVectorSpace = "0.6-0.8"
["0.19.3-0"]
ImageCore = "0.8.1-0.8"
ImageMetadata = "0.6-0.8"I am so confused. |
34: Add MonotonicUpperBound r=DilumAluthge a=timholy This ensures that older versions of a package have older versions of dependencies. xref JuliaRegistries/General#7342 (I know this needs tests, this is just for early feedback.) Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
34: Add MonotonicUpperBound r=DilumAluthge a=timholy This ensures that older versions of a package have older versions of dependencies. xref JuliaRegistries/General#7342 (I know this needs tests, this is just for early feedback.) Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
|
This can probably be merged, given that it seems to be working for others. JuliaLang/Pkg.jl#1575 |
Sounds good. I'll merge this now. If we get reports that it causes problems for others, we can revert it. |
34: Add MonotonicUpperBound r=DilumAluthge a=timholy This ensures that older versions of a package have older versions of dependencies. xref JuliaRegistries/General#7342 (I know this needs tests, this is just for early feedback.) Co-authored-by: Tim Holy <tim.holy@gmail.com> Co-authored-by: Dilum Aluthge <dilum@aluthge.com>
Is there a good way to test this? CC @johnnychen94