Skip to content

Releasing BoneJ

Michael Doube edited this page Apr 21, 2022 · 28 revisions

This is a check list of things to do before releasing a new version of the BoneJ Maven artefacts. It is worth running through steps 1-7 prior to merging pull requests, to keep master in a release-ready state.

  1. Code that has become obsolete has been @Deprecated

  2. @Deprecated code carried over from previous versions has been removed

  3. TODOs minimized.

  4. Update all dependencies with explicit version numbers if needed

    • Make necessary changes, or mark for resolving later (e.g. newly deprecated code)
  5. Check that code compiles and test pass (mvn clean package)

    • Run slow tests for wrapperPlugins too (mvn test -P allTests). They may fail due to time outs. Check that they don't fail repeatedly.
  6. Check that dependencies are correctly marked (mvn dependency:analyze shows no warnings)

  7. Check Javadoc is OK (mvn javadoc:javadoc)

  8. Relax the branch protection rules to allow pushing to master

  9. Cut a new release using this shell script

    • Clone the scijava/scijava-scripts repo into your git directory, or if you have it, git rebase origin/main to bring it up to date
    • From the pom-bonej/ directory, make sure master is up to date with bonej-org/BoneJ2, with e.g. git checkout master, git fetch and git rebase origin/master
    • Still in pom-bonej/ and assuming that the scripts are in a sibling directory, run ./../scijava-scripts/release-version.sh, entering the semantic version when prompted.
    • Note that the scripts push to origin by default, and create and push a tag, bonej-x.y.z that can be used for making a release on GitHub
  10. Tighten the branch protection rules to prevent pushing to master

  11. Update documentation

  12. Check that Zenodo has archived the release code

  13. Check that the build script posted the release version of the artefacts to the SciJava Maven repository.

Additionally if you want to make this a new user release

  1. Ensure that the user docs are up to date, including version number in the top box.
  2. Upload new artefact(s) to the update site.
    • download the official Maven artefacts (jars) built by GitHub Actions from the SciJava repository with the version number matching what the script just built.
    • copy the just-downloaded artefacts into jars or plugins directories of the ImageJ used to run the updater, overwriting the BoneJ jars that are already there.
    • copy dependencies' jars too, if there has been a version change that is not handled by the core update sites (Eclipse Collections is now handled automatically by pom-scijava, but there may be others so check).
  3. Update the bonej.version property in pom-scijava's pom.xml to the current BoneJ version and send a PR to the master branch of scijava/pom-scijava
  4. Announce the release on the forum and Twitter
Clone this wiki locally