I would like to document the process for updating Singular.jl, but I do not know where to put such a thing. The process is at the end of the message, and I hope @thofma can fix any mistakes. This took five days to get one line of code into the official Singular.jl, so I hope there is another method that developers can use in real time.
Thank you for this. I'd like to have similar instructions for Polymake.jl and eventually GAP.jl, too. Where best to put them? Perhaps in a README.maintainer.md or etc/README.md file in the relevant package?
I would like to document the process for updating Singular.jl, but I do not know where to put such a thing. The process is at the end of the message, and I hope @thofma can fix any mistakes. This took five days to get one line of code into the official Singular.jl, so I hope there is another method that developers can use in real time.
Instructions for updating Singular.jl
Here is a record of how we solved https://github.com/oscar-system/Singular.jl/issues/261 by getting the commit https://github.com/Singular/Singular/commit/48c4ba686b2356180aee77dfb59d6d9d7ade5cd9 into Singular.jl.
Singular.jl depends on two binary artifacts: Singular_jll for the actual binaries of Singular, and libsingular_julia_jll for the cxx-wrapped portion.
First, the pull request https://github.com/JuliaPackaging/Yggdrasil/pull/1622 bumps the SHA to an appropriate version of the Singular sources and the version 4.1.3p4 in the comment is actually 4.1.3+3 (the 4 is off by one). After the changes are merged, the repo https://github.com/JuliaBinaryWrappers/Singular_jll.jl is automagically updated and Singular_jll version 4.1.3+3 is usable from julia.
Next, since the bug fix in Singular is in a header file which also happens to be included by the cxx wrappers, libsingular_julia_jll needs to be updated as well. This involves making a new release of the repo https://github.com/oscar-system/libsingular-julia Since this is now version 0.2.0, the version and the SHA needs to be updated by https://github.com/JuliaPackaging/Yggdrasil/pull/1643 After this is merged, the repo https://github.com/JuliaBinaryWrappers/libsingular_julia_jll.jl is automagically updated and libsingular_julia_jll version 0.2.0 is usable.
Finally, an updated Singular.jl is make by bumping the versions in https://github.com/oscar-system/Singular.jl/commit/56ebe7bdfe977d29a1d97cb567e487d741ae9712 It is important to ping the JuliaRegistrator so that version 0.4.1 is usable.
new for libsingular_julia process as of a few months ago: update libsingular_julia/common.jl and version 1.3 https://github.com/JuliaPackaging/Yggdrasil/pull/2535 once this is merged in the registry (i.e. https://github.com/JuliaRegistries/General/pull/29881), a dummy commit for version 1.4 https://github.com/JuliaPackaging/Yggdrasil/pull/2536 once this is merged in the registry, another dummy commit for version 1.5 https://github.com/JuliaPackaging/Yggdrasil/pull/2537