Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 2.32 KB

RELEASING.md

File metadata and controls

28 lines (23 loc) · 2.32 KB

Release process

Testcontainers' release process is semi-automated through GitHub Actions. This describes the basic steps for a project member to perform a release.

Steps

  1. Ensure that the main branch is building and that tests are passing.
  2. Create a new release on GitHub. The tag name is used as the version, so please keep the tag name plain (e.g. 1.2.3).
  3. The release triggers a GitHub Action workflow.
  4. Log in to Sonatype to check the staging repository.
    • Getting access to Sonatype requires a Sonatype JIRA account and raising an issue, requesting access.
  5. Get the staging URL from Sonatype after GitHub Action workflow finished. The general URL format should be https://oss.sonatype.org/service/local/repositories/$staging-repo-id/content/
  6. Manually test the release with the staging URL as maven repository URL (e.g. critical issues and features).
  7. Run TinSalver from GitHub using npx to sign artifact (see TinSalver README).
    • For TinSalver to correctly work with keybase on WSL on Windows, you might need to disable pinentry: keybase config set -b pinentry.disabled true.
  8. Close the release in Sonatype. This will evaluate the release based on given Sonatype rules.
  9. After successful closing, the release button needs to be clicked and afterwards it is automatically synced to Maven Central.
  10. Handcraft and polish some of the release notes (e.g. substitute combined dependency PRs and highlight certain features).
  11. Rename existing milestone corresponding to new release and close it. Then create a new next milestone.
  12. When available through Maven Central, poke Richard North to announce the release on Twitter!
  13. Merge automated version update PRs in order to update the reference version in mkdocs.yml and gradle.properties.

Internal details

  • The process is done with GitHub Actions, TinSalver and Sonatype.
  • Sonatype will automatically promote the staging release to Maven Central.
  • Keybase needs to be installed on the developer machine.
  • GPG key of signing developer needs to be uploaded to the Ubuntu keyserver (or other server supported by Sonatype).