xref: /libCEED/RELEASING.md (revision ff0d35f1d1ff56754730a89ffd053837f7b88549)
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