-
Notifications
You must be signed in to change notification settings - Fork 12
Releasing BoneJ
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.
-
Code that has become obsolete has been
@Deprecated
-
@Deprecated
code carried over from previous versions has been removed -
TODOs minimized.
-
Update all dependencies with explicit version numbers if needed
- Make necessary changes, or mark for resolving later (e.g. newly deprecated code)
-
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.
- Run slow tests for
-
Check that dependencies are correctly marked (
mvn dependency:analyze
shows no warnings) -
Check Javadoc is OK (
mvn javadoc:javadoc
) -
Relax the branch protection rules to allow pushing to
master
-
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 suremaster
is up to date withbonej-org/BoneJ2
, with e.g.git checkout master
,git fetch
andgit 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
- Clone the
-
Tighten the branch protection rules to prevent pushing to
master
-
Update documentation
- Draft a release, following the style in prior releases.
- Note changed specifications and behaviour in the developer documentation.
-
Check that Zenodo has archived the release code
-
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
- Ensure that the user docs are up to date, including version number in the top box.
-
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
orplugins
directories of theImageJ
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).
- Update the
bonej.version
property inpom-scijava
'spom.xml
to the current BoneJ version and send a PR to themaster
branch ofscijava/pom-scijava
- Announce the release on the forum and Twitter