Open LilithHafner opened 1 year ago
What should dev Unicode
do exactly?
Just like ]dev SortingAlgorithms
, it should
1) make the latest source code of the Unicode package available in the folder joinpath(Pkg.devdir(), "Unicode")
2) make it so that loading Unicode (e.g. using Unicode
) loads the code in that folder
2.5) If Revise is loaded prior to the new instance of Unicode, make sure that changes made to the source code in joinpath(Pkg.devdir(), "Unicode")
are tracked by revise
3) make it so that I can run git checkout -b my-new-branch
/git commit -a -m "my changes"
/gh pr create
and contribute my changes upstream.
3.5) Make it possible to ]dev Unicode
and ]dev Dates
without having git combine the changes to the two codebases (just like how ]dev SortingAlgorithms
and ]dev Plots
don't get combined)
To support steps 3 and 3.5 for Unicode (which does not have its own Repo) we can clone julia into joinpath(Pkg.devdir(), ".Unicode")
and create the symlink symlink(joinpath(Pkg.devdir(), ".Unicode", "stdlibs", "Unicode"), joinpath(Pkg.devdir(), "Unicode"))
.
"Sparse checkout" may help make this look more pretty, but I don't think it will actually save bandwidth or disk space.
make it so that loading Unicode (e.g. using Unicode) loads the code in that folder
Cannot really happen since Unicode is in the sysimage and you can only load one instance of a package.
We could automate the UUID changing process described here to trick ourselves into loading a new version of the stlib for direct use, but without displacing the existing version that other packages depend on.
That sounds very weird then that your dependencies do not load the package that you devved (which is unlike the case for any other normal package).
That's true :/. Do you have any ideas for how we could support developing standard libraries which remain in the sysimg?
Setting the Revise tracking target to a new codebase seems inadequate because we can't redefine types that way.
Perhaps it is possible to reload packages in the sysimg the same way it is possible to reload packages defined in Main?
This is a self contained, actionable, subset of #35991. Getting
]free
to work would be another bonus.