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.jl” 69 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