Release Plugin (quokka.plugin.release:0.3, namespace=release)

The Release plugin automates the steps required to release a module, including verifying it is suitable for release and tagging the release in version control.

Main Targets

release Releases a project, including tagging in version control and updating versions

Minor Targets

verify-properties Verifies properties required for releasing are set
verify-no-snapshots Verifies that there are no snapshot dependencies for this project
verify-bootstrap Verifies that a bootstrap entry has been specified
verify-java-levels Verifies that a java source and target levels have been set
commit-release Sets version control properties for committing the release
tag-release Sets version control properties for tagging the release
rollover-version Rolls over the version of the project in the project file
commit-rollover Sets version control properties for committing the rolled over version

Abstract Targets

pre-release Hook for other plugins to implement
post-release Hook for other plugins to implement
post-rollover Hook for other plugins to implement

The release plugin works somewhat differently to most plugins. The release target has a property of targets that is a list of targets that will be executed in order to perform a release. This is instead of having targets that depend on each other as it is likely that different projects will add or remove targets for a release.

It also allows the property to be edited to resume processing part way through in the case of a failure.

To prepare for a release you should do the following:

  • Commit all local changes and ensure that your working copy is consistent (same revision etc). It will form the basis of the tagged version in version control.
  • Optionally, lock your repository to have exclusive access. You need to be able to the following steps without anyone else committing changes in the interim.
  • Modify the version of your project to the release version (usually by removing the -ss suffix)
  • Build the project and verify it for release, including installation. The artifacts built will be the proper release artifacts.
  • Verify you have set q.release.rolloverVersion or are about to supply it on the command line. You should also set any other properties for the release at this time.
  • Verify that q.release.targets contains the correct targets in the correct order.
  • Run the release. e.g. quokka -Dq.release.rolloverVersion=1.1-ss release
  • Assuming it has been sucessful, you can unlock exclusive access to the repository.
  • If there was a failure, you can fix the underlying problem then edit q.release.targets to only execute the remaining targets.

release

Releases a project, including tagging in version control and updating versions

  • alias: release
  • prefix: q.release.release

Properties:

version The version of release. It will be used as the tag by default and used in the default messages. If versioncontrol:verify-releasable has been run as part of the release, it will automatically extract the new version from the project file and set q.versioncontrol.newVersion. This then becomes the default for version.
rolloverVersion Mandatory. This is the new version for trunk. e.g. If the new release is 1.0, then the rolloverVersion will probably be 1.1-ss or something similar.
tag The name of the tag for version control. Defaults to version
tagMessage Commit message when creating the tag. Defaults to "Release <version>
commitMessage Commit message for the final commit (of the project file). Defaults to "Final revision for <version>
rolloverMessage Commit message for the rolling over the new version in the project file. Defaults to "Rolled over version to <version>
targets A comma separated list of targets to perform for the release.

Default Properties

targets versioncontrol:verify-releasable, release:verify-properties, release:verify-no-snapshots, release:verify-bootstrap, release:verify-java-levels, release:pre-release, release:commit-release, release:tag-release, release:post-release, release:rollover-version, release:commit-rollover, release:post-rollover

verify-properties

Verifies properties required for releasing are set

  • prefix: q.release.verifyproperties

Default Properties

properties version, tag, rolloverVersion

verify-no-snapshots

Verifies that there are no snapshot dependencies for this project


verify-bootstrap

Verifies that a bootstrap entry has been specified


verify-java-levels

Verifies that a java source and target levels have been set


commit-release

Sets version control properties for committing the release


tag-release

Sets version control properties for tagging the release


rollover-version

Rolls over the version of the project in the project file


commit-rollover

Sets version control properties for committing the rolled over version


pre-release

Hook for other plugins to implement

  • abstract: true

post-release

Hook for other plugins to implement

  • abstract: true

post-rollover

Hook for other plugins to implement

  • abstract: true

Plugin Paths

runtime : Runtime class path

quokka.core.metadata metadata 0.3

quokka.core.plugin-spi plugin-spi 0.3

quokka.core.util util 0.3

quokka.core.repo-spi repo-spi 0.3

quokka.core.bootstrap-util bootstrap-util 0.3

apache.ant ant 1.7.1