Skip to content

Commit

Permalink
README.maintainer.md: further improvements (#667)
Browse files Browse the repository at this point in the history
  • Loading branch information
fingolfin authored Jun 3, 2024
1 parent 8cc5807 commit b57cb8e
Showing 1 changed file with 41 additions and 4 deletions.
45 changes: 41 additions & 4 deletions README.maintainer.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ Suppose just the C++ wrappers need to be updated, without any changes to the
Singular kernel itself.

1. Commit changes to the `deps/src/` directory.
> ex: <https://github.com/oscar-system/Singular.jl/commit/73af1a6b0f99c11f00837c535db818ca2de7d9a2>
> ex: <https://github.com/oscar-system/Singular.jl/pull/661>
2. After the changes are merged (and before the next `Singular.jl` release), update
the `libsingular_julia` build script with a new version number and using the
latest commit SHA for the `master` branch of `Singular.jl`.
> ex: <https://github.com/JuliaPackaging/Yggdrasil/commit/dd9d775f530b1164dd1cf6135677846dcb25fafc>
> ex: <https://github.com/JuliaPackaging/Yggdrasil/pull/6880>
3. Wait for this to be merged into Yggdrasil, and then wait for the registry
to pick up the new version of `libsingular_julia_jll`.
> ex: <https://github.com/JuliaRegistries/General/commit/00624106c204ccb28fb2c834877fb6005c653ce7>
> ex: <https://github.com/JuliaRegistries/General/pull/85185>
4. Bump the dependence in `Singular.jl` to whatever version number was used in Step 2.
> ex: <https://github.com/oscar-system/Singular.jl/commit/f669cea1aa4fc73082d8e8c08a1e33a7c22882ed>
Expand All @@ -53,7 +53,7 @@ in further downstream packages.
Suppose the Singular kernel needs an update. This involves updating both build
scripts because `libsingular_julia_jll` will need to point to the new `Singular_jll`.

1. Update the Singular build script with the commit SHA of the singular sources (https://github.com/Singular/Singular)
1. Update the Singular build script with the commit SHA of the singular sources at <https://github.com/Singular/Singular>
> ex: <https://github.com/JuliaPackaging/Yggdrasil/commit/1996668f09e89bc8da0cc498c59d905821b150c8>
In this specific commit, `FLINT_jll` was also updated, but this is not necessary to update singular.
Expand Down Expand Up @@ -87,3 +87,40 @@ Since updating the Singular kernel requires an update to `libsingular_julia`, th
steps here are the same as in the previous section. Just make sure that in
Step 3, the commit SHA used to update the `libsingular_julia` build scripts
contains all of the desired changes to `libsingular_julia`.


## Building a custom `Singular_jjl` locally

For testing purposes one may wish to try out `Singular_jll` changes locally before
submitting them as a PR to Yggdrasil. This can be done as shown in the following
shell script:

```shell
# Change into a clone of the Yggdrasil repository
git clone https://github.com/JuliaPackaging/Yggdrasil
cd Yggdrasil

# record the base path
BASEPATH=$(pwd)

# ensure building macOS binaries will work (you can omit this if you only
# want to build for Linux)
export BINARYBUILDER_AUTOMATIC_APPLE=true

# change into the directory containing the `build_tarballs.jl` we want to build
cd S/Singular_jll

# Now `build_tarballs.jl` can be modified, e.g. to pull a different set of
# sources, use different versions of dependencies, etc.

# ensure BinaryBuilder etc. is installed in the right version
# (ideally use the same Julia version as specified in `.ci/Manifest.toml`)
julia --project=$BASEPATH/.ci -e 'using Pkg; Pkg.instantiate()'

# get list of platforms etc.
julia --project=$BASEPATH/.ci build_tarballs.jl --help

# build and deploy the JLL locally. If you omit the comma-separated
# list of PLATFORMS then it will build for *all* platforms
julia --project=$BASEPATH/.ci build_tarballs.jl PLATFORMS --deploy=local
```

0 comments on commit b57cb8e

Please sign in to comment.