Closed vchuravy closed 10 months ago
This may be to aggressive, but I do think that we need compat entries at least for every stdlib.
cc: @staticfloat @giordano (to take a quick look at the JLL-related changes)
This change makes sense to me, but when deployed, this should be accompanied by a discourse post announcing the change and the rationale. (Including what authors should do, e.g. how should they set compat bounds on stdlibs)
@ericphanson how about the following annoucement
Up until now standard libraries (and JLL's) have been excluded from the mandatory
requirement of being listed in [compat]
. Since the version of a standard library was
tightly coupled to the version of Julia it was shipped with.
In Julia v1.11 (and to an lesser extend v1.10) we are moving towards upgradeable standard libaries, this means that Julia will still come with the same selection of standard libraries, but instead of waiting for a new Julia release, standard libraries will have their own release cycle. So it should be possible in the future to use Pkg v1.12 on Julia v1.11.
In effect standard libraries are becoming normal Julia packages, with the only difference that a version of them will be shipped with a default Julia install.
Now this means that version numbers of standard libraries and Julia are no longer coupled and one
must manually declare [compat]
requirements for standard libraries as well as Julia in your Project.toml
.
We will handle the registry side of things automatically, but developers will have to
manually adjust their Project.toml
the next time they release a version to the registry.
So a Project.toml like:
name = "TestStdlibMissingCompat"
uuid = "4a0d4eb6-ee8c-4d0f-9d49-1daa6f6c32cf"
authors = ["Valentin Churavy <v.churavy@gmail.com>"]
version = "0.1.0"
[deps]
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
[compat]
julia = "1.9"
Would become:
name = "TestStdlibMissingCompat"
uuid = "4a0d4eb6-ee8c-4d0f-9d49-1daa6f6c32cf"
authors = ["Valentin Churavy <v.churavy@gmail.com>"]
version = "0.1.0"
[deps]
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
[compat]
julia = "1.9"
Statistics = "1.9"
In your example Project.toml
file, can you also add an example JLL dependency, just for purposes of illustration?
That sounds great to me, but I agree with Dilum we should mention more JLLs too, not just stdlibs, since we're changing both here. (We mentioned they were exempt but not that they are no longer exempt). Also as a tiny grammar nit,
Since the version of a standard library was tightly coupled to the version of Julia it was shipped with.
is kinda an incomplete sentence; maybe:
Stdlibs were exempt because the version of a standard library was tightly coupled to the version of Julia it was shipped with.
@vchuravy and/or @staticfloat - can you help @giordano out with https://github.com/JuliaPackaging/BinaryBuilderBase.jl/pull/314?
After a conversation with @DilumAluthge I would say let's back out the JLL change for now, that seems like a bigger change and the stdlib change needs to happen now. We are already likely to have some inconsistencies in the Registry.
Let's call this breaking. I've bumped the major version number to 9
.
bors try
@vchuravy We need to fix several of the integration tests.
bors try
Build succeeded!
The publicly hosted instance of bors-ng is deprecated and will go away soon.
If you want to self-host your own instance, instructions are here. For more help, visit the forum.
If you want to switch to GitHub's built-in merge queue, visit their help page.
bors merge
Build succeeded!
The publicly hosted instance of bors-ng is deprecated and will go away soon.
If you want to self-host your own instance, instructions are here. For more help, visit the forum.
If you want to switch to GitHub's built-in merge queue, visit their help page.
This will be registered in https://github.com/JuliaRegistries/General/pull/94135.
This will be deployed by the combination of https://github.com/JuliaRegistries/General/pull/94141 and https://github.com/JuliaRegistries/General/pull/94142
I reran StdlibRegistryCompatUpdater for DelimitedFiles and Statistics https://github.com/JuliaRegistries/General/pull/94159
Fixes #515, by no longer treating stdlibs as special.
(Note: previously, this PR also added the requirement for JLL dependencies. That was removed from this PR.)