Skip to content

Releasing BoneJ

Michael Doube edited this page Apr 11, 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
    • Draft a release, following the style in prior releases
  12. Check that Zenodo has archived the release code

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. Update the imagej.net Wiki with a redirect for new plugins
  3. Upload new artefact(s) to the update site.
    • delete old BoneJ jars from the ImageJ installation with e.g. find ~/Fiji.app.user/ -type f -name 'bonej-*.jar' -delete
    • copy the just-built artefacts from pom-bonej/.../target into jars or plugins directories of the ImageJ used to run the updater
    • copy dependencies' jars too, (e.g. eclipse-collections) if there has been a version change and they are not handled by the core update sites
  4. 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
  5. Announce the release on the forum and Twitter
Clone this wiki locally