Bio-Formats release

This document describes the release process of the Bio-Formats Java library. The release process uses GitHub actions, make sure that the actions are active before pushing any tag.

Before starting the release process, make sure documentation is updated appropriately:

When all changes are approved by both the OME team and the Glencoe Software team, merge documentation pull requests and start the release process.

Source code release

Before making a new release, merge all contributions on the develop branch of Bio-Formats.

The first operation to perform a Maven release is to bump the version out of SNAPSHOT using the Maven versions plugin, add and commit:

$ mvn versions:set -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=release.version -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Bump release version to x.y.z"

A signed tag must be created for the released version using git tag -s:

$ git tag -s -m "Tag version x.y.z" vx.y.z

Revert to SNAPSHOT, add and commit:

$ mvn versions:set -DnewVersion=x.y.t-SNAPSHOT -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=release.version -DnewVersion=x.y.z-SNAPSHOT -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Revert to snapshot"

Both the develop branch as well as the tag must be pushed upstream:

$ git push origin develop vx.y.z

This will trigger GitHub action builds, generate artifacts, create a GitHub release and upload the artifacts to the release on GitHub and to the OME artifactory. An hourly cron job runs on our virtual machine and copy the artifacts published on Github under Bio-Formats Downloads.

The GitHub release should automatically include release notes generated by GitHub.

Close the milestone if any and add new one if needed.

Testing the artifacts

To test the artifacts published,
If an error occurs during the testing:
  • Delete the release and the tag on GitHub.

  • Delete the artifacts on OME artifactory.

  • Delete the folder corresponding to the latest release under Bio-Formats Downloads, if it has already been created.

Fiji update site

After merging all contributions on the master branch of https://github.com/ome/bio-formats-fiji, bump the version, add and commit:

$ mvn versions:set -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=bioformats.version -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Bump release version to x.y.z"
$ git push origin master

Run the mvn package command by pointing the fiji.home property at the home folder of your local Fiji application to replace the Bio-Formats JARs e.g.:

$ mvn clean package -Dfiji.home=/Application/Fiji.app/

Test the Fiji Bio-Formats plugin as described in the Fiji Plugin scenario. Once validated, upload the Bio-Formats JARs to the Java-8 update site.

Revert to SNAPSHOT, add, commit and push to origin:

$ mvn versions:set -DnewVersion=x.y.t-SNAPSHOT -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Revert to snapshot"
$ git push origin master

Bio-Formats examples release

Before making a release, merge all contributions on the master branch of Bio-Formats Examples.

The first operation to perform a Maven release is to bump the version out of SNAPSHOT using the Maven versions plugin:

$ mvn versions:set -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=formats-bsd.version -DnewVersion=x.y.z -DgenerateBackupPoms=false

Bump the version and formats-bsd in build.gradle.

Add and commit:

$ git add -u .
$ git commit -m "Bump release version to x.y.z"

A signed tag must be created for the released version using git tag -s:

$ git tag -s -m "Tag version x.y.z" vx.y.z

Revert to SNAPSHOT in pom.xml:

$ mvn versions:set -DnewVersion=x.y.t-SNAPSHOT -DgenerateBackupPoms=false

Revert the version to SNAPSHOT in build.gradle.

Add and commit:

$ git add -u .
$ git commit -m "Bump version to x.y.t-SNAPSHOT"

Both the master branch as well as the tag must be pushed upstream:

$ git push origin master vx.y.z

This will trigger GitHub action builds, generate artifacts and upload the artifacts to the OME artifactory.

Documentation release

Before making a new release, merge all relevant contributions on the master branch of Bio-Formats Documentation. Pull requests for new format pages need to be merged and tagged as a follow-up to the initial release tag.

The first operation to perform a Maven release is to bump the version out of SNAPSHOT using the Maven versions plugin, add and commit:

$ mvn versions:set -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=bioformats.version -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ mvn versions:set-property -Dproperty=bio-formats-examples.version -DnewVersion=x.y.z -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Bump release version to x.y.z"

A signed tag must be created for the released version using git tag -s:

$ git tag -s -m "Tag version x.y.z" vx.y.z

Revert to SNAPSHOT, add and commit:

$ mvn versions:set -DnewVersion=x.y.t-SNAPSHOT -DgenerateBackupPoms=false
$ git add -u .
$ git commit -m "Revert to snapshot"

Both the master branch as well as the tag must be pushed upstream:

$ git push origin master vx.y.z

The documentation is built and published on Read The Docs.

An hourly cron job runs on our virtual machine and adds redirect from for example docs.openmicroscopy.org/bio-formats/7.3.1 to bio-formats.readthedocs.io/en/v7.3.1/.

Merge origin/master into the branches for any new format pages. RTD builds are not merge builds, so closing/re-opening pull requests is not sufficient.

Merge any new format page pull requests and tag with git tag -s -m “Tag version x.y.z-n” vx.y.z-n.

Close the milestone if any and add new one if needed.

Data repository release

Before making a new release, merge all contributions on the master branch of Data Repository.

A signed tag must be created for the released version using git tag -s:

$ git tag -s -m "Tag version x.y.z" vx.y.z
$ git push origin vx.y.z

Website release

When the documentation is deployed, you can make a release of the Open Microscopy Environment website.

To make a release:

A signed tag must be created using git tag -s:

$ git tag -s -m "Message" YYYY.MM.DD

Before pushing, make sure that the documentation has been built and published on Read The Docs. Both the master branch as well as the tag must be pushed upstream:

$ git push origin master YYYY.MM.DD

An hourly cron job runs on our virtual machine and deploys the website.

Announcement

  • Announce the release on image.sc using the Announcements category after checking that the website has been deployed.

  • Announce on the Confocal email

  • Announce on Bluesky and Linkedin

Post Release