1ead10094SWill Pazner# Release Procedures 2ead10094SWill Pazner 3*ff0d35f1Sjeremylt## Core library 4*ff0d35f1Sjeremylt 5*ff0d35f1SjeremyltSome minor bookkeeping updates are needed when releasing a new verision of the core library. 6*ff0d35f1Sjeremylt 7*ff0d35f1SjeremyltThe version number must be updated in 8*ff0d35f1Sjeremylt 9*ff0d35f1Sjeremylt* `include/ceed/ceed.h` 10*ff0d35f1Sjeremylt* `ceed.pc.template` 11*ff0d35f1Sjeremylt* `Doxyfile` 12*ff0d35f1Sjeremylt 13*ff0d35f1SjeremyltAdditionally, the release notes in `doc/sphinx/source/releasenotes.rst` should be updated. 14*ff0d35f1Sjeremylt 15ead10094SWill Pazner## Julia 16ead10094SWill Pazner 17ead10094SWill PaznerlibCEED's Julia interface (LibCEED.jl) has two components: 18ead10094SWill Pazner 19ead10094SWill Pazner* LibCEED.jl, the user-facing package that contains the Julia interface. 20ead10094SWill Pazner* libCEED_jll, a binary wrapper package ("jll package") that contains prebuilt binaries of the 21ead10094SWill Pazner libCEED library for various architectures. 22ead10094SWill Pazner 23ead10094SWill PaznerWhen there is a new release of libCEED, both of these components need to be updated. First, 24ead10094SWill PaznerlibCEED_jll is updated, and then LibCEED.jl. 25ead10094SWill Pazner 26ead10094SWill Pazner### Updating libCEED_jll 27ead10094SWill Pazner 28ead10094SWill PaznerThe binary wrapper package libCEED_jll is updated by making a pull request against 29ead10094SWill Pazner[Yggdrasil](https://github.com/JuliaPackaging/Yggdrasil), the Julia community build tree. In this 30ead10094SWill PaznerPR, the file `L/libCEED/build_tarballs.jl` should be changed to update version number and change the 31ead10094SWill Paznerhash of the libCEED commit to use to build the binaries, similar to the following diff: 32ead10094SWill Pazner```diff 33ead10094SWill Paznerdiff --git a/L/libCEED/build_tarballs.jl b/L/libCEED/build_tarballs.jl 34ead10094SWill Pazner--- a/L/libCEED/build_tarballs.jl 35ead10094SWill Pazner+++ b/L/libCEED/build_tarballs.jl 36ead10094SWill Pazner@@ -3,11 +3,11 @@ 37ead10094SWill Pazner using BinaryBuilder, Pkg 38ead10094SWill Pazner 39ead10094SWill Pazner name = "libCEED" 40ead10094SWill Pazner-version = v"0.7.0" 41ead10094SWill Pazner+version = v"0.8.0" 42ead10094SWill Pazner 43ead10094SWill Pazner # Collection of sources required to complete build 44ead10094SWill Pazner sources = [ 45ead10094SWill Pazner- GitSource("https://github.com/CEED/libCEED.git", "06988bf74cc6ac18eacafe7930f080803395ba29") 46ead10094SWill Pazner+ GitSource("https://github.com/CEED/libCEED.git", "e8f234590eddcce2220edb1d6e979af7a3c35f82") 47ead10094SWill Pazner ] 48ead10094SWill Pazner``` 49ead10094SWill PaznerAfter the PR is merged into Yggdrasil, the new version of libCEED_jll will automatically be 50ead10094SWill Paznerregistered, and then we can proceed to update LibCEED.jl. 51ead10094SWill Pazner 52ead10094SWill Pazner### Updating LibCEED.jl 53ead10094SWill Pazner 54ead10094SWill PaznerAfter the binary wrapper package libCEED_jll has been updated, we are ready to update the main Julia 55ead10094SWill Paznerinterface LibCEED.jl. This requires updating the file `julia/LibCEED.jl/Project.toml` in the libCEED 56ead10094SWill Paznerrepository. The version number should be incremented, and the dependency on the updated version of 57ead10094SWill PaznerlibCEED_jll should be listed: 58ead10094SWill Pazner```diff 59ead10094SWill Paznerdiff --git a/julia/LibCEED.jl/Project.toml b/julia/LibCEED.jl/Project.toml 60ead10094SWill Pazner--- a/julia/LibCEED.jl/Project.toml 61ead10094SWill Pazner+++ b/julia/LibCEED.jl/Project.toml 62ead10094SWill Pazner@@ -1,7 +1,7 @@ 63ead10094SWill Pazner name = "LibCEED" 64ead10094SWill Pazner uuid = "2cd74e05-b976-4426-91fa-5f1011f8952b" 65ead10094SWill Pazner-version = "0.1.0" 66ead10094SWill Pazner+version = "0.1.1" 67ead10094SWill Pazner 68ead10094SWill Pazner [deps] 69ead10094SWill Pazner CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82" 70ead10094SWill Pazner@@ -26,4 +26,4 @@ Cassette = "0.3" 71ead10094SWill Pazner Requires = "1" 72ead10094SWill Pazner StaticArrays = "0.12" 73ead10094SWill Pazner UnsafeArrays = "1" 74ead10094SWill Pazner-libCEED_jll = "0.7" 75ead10094SWill Pazner+libCEED_jll = "0.8" 76ead10094SWill Pazner``` 77ead10094SWill PaznerOnce this change is merged into libCEED's `main` branch, the updated package version can be 78ead10094SWill Paznerregistered using the GitHub registrator bot by commenting on the commit: 79ead10094SWill Pazner 80446df8bcSWill Pazner> @JuliaRegistrator register branch=main subdir=julia/LibCEED.jl 81ead10094SWill Pazner 82ead10094SWill PaznerAt this point, the bot should create against the [general Julia 83ead10094SWill Paznerregistry](https://github.com/JuliaRegistries/General), which should be merged automatically after a 84ead10094SWill Paznershort delay. 852475aa4cSWill Pazner 862475aa4cSWill Pazner### Moving development tests to release tests 872475aa4cSWill Pazner 882475aa4cSWill PaznerLibCEED.jl has both _development_ and _release_ unit tests. The _release_ tests are run both with 892475aa4cSWill Paznerthe current build of libCEED, and with the most recent release of libCEED_jll. The _development_ 902475aa4cSWill Paznertests may use features which were not available in the most recent release, and so they are only run 912475aa4cSWill Paznerwith the current build of libCEED. 922475aa4cSWill Pazner 932475aa4cSWill PaznerUpon release, the development tests may be moved to the release tests, so that these features will 942475aa4cSWill Paznerbe tested against the most recent release of libCEED_jll. The release tests are found in the file 952475aa4cSWill Pazner`julia/LibCEED.jl/test/runtests.jl` and the development tests are found in 962475aa4cSWill Pazner`julia/LibCEED.jl/test/rundevtests.jl`. 97*ff0d35f1Sjeremylt 98*ff0d35f1Sjeremylt## Python 99*ff0d35f1Sjeremylt 100*ff0d35f1SjeremyltToDo - instructions for releasing an new Python wheel go here 101*ff0d35f1Sjeremylt 102*ff0d35f1Sjeremylt## Rust 103*ff0d35f1Sjeremylt 104*ff0d35f1SjeremyltToDo - instructions for releasing the three Rust crates go here 105