Skip to content

OpenVox Release Playbook

Nick Burgan edited this page May 7, 2026 · 10 revisions

OpenVox Agent

  1. Ensure dependency bumps are merged into puppet-runtime, including running Update Components to bump all the Ruby gems, and manually updating the other components such a Ruby, Curl, and OpenSSL to new versions if needed.

  2. Run prepare -> release -> build. Build agent-runtime-main (OpenVox 9) and/or agent-runtime-8.x (OpenVox 8).

  3. Use the promote action to promote the version of puppet-runtime you just built into openvox. Ensure you select the correct target branch to promote into (main for OpenVox 9 and 8.x for OpenVox 8).

  4. If there is a new version of OpenFact since the last release, use the same promote action to promote that version to the target branch as well.

  5. (Optional) Run the Build openvox-agent action, giving it the branch name (main for OpenVox 9 or 8.x for OpenVox 8). This will build unsigned test versions of the packages and uploads them to the artifacts S3 bucket. You can find the version of the build by inspecting the "Upload output to S3" step in the build action for any of the platforms.

  6. (Optional) Ask the community to beta test these packages and highlight any issues so they can be fixed before release. If there are fixes needed, repeat the steps above as appropriate.

  7. Run the Beaker Acceptance Pipeline for OpenVox with Pre-release build checked and the new version you are releasing + the latest release of the other components you aren't releasing. Ensure everything is green.

  8. Run the Prepare release action, inspect the CHANGELOG in the result PR, and merge the PR.

  9. Run the Release action. Previously, this would fail on the step where it tries to bump the version, because we don't do that for this repo. But the release would be cut anyway. I think this is now fixed since the last release where this failed, though.

  10. Run the Build openvox-agent action. This builds all of the unsigned packages and uploads them to the artifacts S3 bucket.

  11. Follow the Sign and Release process below.

OpenVox Server

  1. Ensure all dependency bumps are merged in.

    • If any of the openvoxproject clojure sub-components need updating, you'll need to do the whole process of building those in the right order to avoid leiningen being cranky about differing dependency versions. Note that there is currently a circular dependency between clj-http-client and trapperkeeper-webserver-jetty10 around dependencies that are only for tests, but lein will still be unhappy and you may need to merge the bump of one of them with tests being red.
    • For OpenVox Server 8, note that we must remain on logback 1.3.x, ring-core 1.14.x, and Bouncy Castle 1.x (all of the various jars for org.bouncycastle).
  2. (Optional) Run the Build openvox-server](https://github.com/OpenVoxProject/openvox-server/actions/workflows/build.yml) and Build openvox-server - FIPS platforms actions, giving it the branch name (main for OpenVox 9 or 8.x for OpenVox 8). This will build unsigned test versions of the packages and uploads them to the artifacts S3 bucket. You can find the version of the build by inspecting the "Upload output to S3" step in the build action for any of the platforms.

  3. (Optional) Ask the community to beta test these packages and highlight any issues so they can be fixed before release. If there are fixes needed, repeat the steps above as appropriate.

  4. Manually run bundle exec rake changelog and merge in the updates. We'll change this in the future to be part of automation. Do not change any version strings. The lein release process later will bump them accordingly, and the changelog action will automatically strip the -SNAPSHOT off of the current unreleased version string.

  5. Run Release and publish package to clojars -> Build openvox-server and Build openvox-server - FIPS platforms.

  6. Follow the Sign and Release process below.

OpenBolt

  1. Ensure dependency bumps are merged into puppet-runtime, including running Update Components to bump all the Ruby gems, and manually updating the other components such a Ruby, Curl, and OpenSSL to new versions if needed.

  2. Run prepare -> release -> build. Build openbolt-runtime

  3. Use the promote action to promote the version of puppet-runtime you just built into OpenBolt.

Sign and Release

Clone this wiki locally