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:


release

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

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

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


post-release

Hook for other plugins to implement


post-rollover

Hook for other plugins to implement


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