-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Description
A long-term goal for me is to enable upgradable stdlibs. Essentially leveraging pkgimages to move as many stdlibs out of the base system image and allow upgradeability without requiring Julia upgrades.
Currently the only upgradeable stdlib is DelimitedFiles
. And maybe soon (tm) Statistics
#46501
@KristofferC recently described to me on Slack the steps necessary to make a stdlib upgradeable?
The steps for an upgradable stdlib are:
1. Move the stdlib to an external repo:
2. Remove the stdlib from the sysimage
3. Make the version of the stdlib to the same as the current Julia version
4. Run https://github.com/KristofferC/StdlibRegistryCompatUpdater/blob/d79d66f7734e3d8d71213a4cf6250bea84dafe43/src/StdlibRegistryCompatUpdater.jl#L40 with the stdlib name and UUID to generate a PR to the registry equivalent to JuliaRegistries/General#66039
5. do something like JuliaLang/Pkg.jl#3373
For Step 2.
one can look at pkgimage.mk
if the stdlib has a pkgbuilder defined for it. (x-ref: #50684)
Would be great if we could crowd-source this process!
### Tasks
- [x] DelimitedFiles.jl JuliaLang/julia#45540 JuliaLang/julia#48671
- [x] Statistics.jl JuliaLang/julia#46501
- [ ] Distributed https://github.com/JuliaLang/julia/pull/51621
- [ ] SparseArrays
- [ ] https://github.com/JuliaLang/julia/issues/57993
- [ ] SharedArrays
- [ ] Test https://github.com/JuliaLang/julia/pull/51632
- [ ] Pkg.jl https://github.com/JuliaLang/Pkg.jl/pull/3638
- [ ] LinearAlgebra https://github.com/JuliaLang/LinearAlgebra.jl/issues/1027
- [ ] Random https://github.com/JuliaLang/julia/pull/51432
- [ ] FileWatching https://github.com/JuliaLang/julia/pull/51463
- [ ] Require compat annotations in registry https://github.com/JuliaRegistries/RegistryCI.jl/pull/516
- [ ] ...
How to split a stdlib into a seperate repository
contrib/excise_stdlib.sh Test