xref: /libCEED/RELEASING.md (revision ead10094b1afe692ef8029052623994ba5ce35bc)
1# Release Procedures
2
3## Julia
4
5libCEED's Julia interface (LibCEED.jl) has two components:
6
7* LibCEED.jl, the user-facing package that contains the Julia interface.
8* libCEED_jll, a binary wrapper package ("jll package") that contains prebuilt binaries of the
9  libCEED library for various architectures.
10
11When there is a new release of libCEED, both of these components need to be updated. First,
12libCEED_jll is updated, and then LibCEED.jl.
13
14### Updating libCEED_jll
15
16The binary wrapper package libCEED_jll is updated by making a pull request against
17[Yggdrasil](https://github.com/JuliaPackaging/Yggdrasil), the Julia community build tree. In this
18PR, the file `L/libCEED/build_tarballs.jl` should be changed to update version number and change the
19hash of the libCEED commit to use to build the binaries, similar to the following diff:
20```diff
21diff --git a/L/libCEED/build_tarballs.jl b/L/libCEED/build_tarballs.jl
22--- a/L/libCEED/build_tarballs.jl
23+++ b/L/libCEED/build_tarballs.jl
24@@ -3,11 +3,11 @@
25 using BinaryBuilder, Pkg
26
27 name = "libCEED"
28-version = v"0.7.0"
29+version = v"0.8.0"
30
31 # Collection of sources required to complete build
32 sources = [
33-    GitSource("https://github.com/CEED/libCEED.git", "06988bf74cc6ac18eacafe7930f080803395ba29")
34+    GitSource("https://github.com/CEED/libCEED.git", "e8f234590eddcce2220edb1d6e979af7a3c35f82")
35 ]
36```
37After the PR is merged into Yggdrasil, the new version of libCEED_jll will automatically be
38registered, and then we can proceed to update LibCEED.jl.
39
40### Updating LibCEED.jl
41
42After the binary wrapper package libCEED_jll has been updated, we are ready to update the main Julia
43interface LibCEED.jl. This requires updating the file `julia/LibCEED.jl/Project.toml` in the libCEED
44repository. The version number should be incremented, and the dependency on the updated version of
45libCEED_jll should be listed:
46```diff
47diff --git a/julia/LibCEED.jl/Project.toml b/julia/LibCEED.jl/Project.toml
48--- a/julia/LibCEED.jl/Project.toml
49+++ b/julia/LibCEED.jl/Project.toml
50@@ -1,7 +1,7 @@
51 name = "LibCEED"
52 uuid = "2cd74e05-b976-4426-91fa-5f1011f8952b"
53-version = "0.1.0"
54+version = "0.1.1"
55
56 [deps]
57 CEnum = "fa961155-64e5-5f13-b03f-caf6b980ea82"
58@@ -26,4 +26,4 @@ Cassette = "0.3"
59 Requires = "1"
60 StaticArrays = "0.12"
61 UnsafeArrays = "1"
62-libCEED_jll = "0.7"
63+libCEED_jll = "0.8"
64```
65Once this change is merged into libCEED's `main` branch, the updated package version can be
66registered using the GitHub registrator bot by commenting on the commit:
67
68> @JuliaRegistrator register branch=main subdir=julia/LibCEED.jl69
70At this point, the bot should create against the [general Julia
71registry](https://github.com/JuliaRegistries/General), which should be merged automatically after a
72short delay.
73