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.
|release||Releases a project, including tagging in version control and updating versions|
|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|
|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.rolloverVersionor 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.targetscontains 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.targetsto only execute the remaining targets.
Releases a project, including tagging in version control and updating versions
- alias: release
- prefix: q.release.release
|version||The version of release. It will be used as the tag by default
and used in the default messages. If
|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.|
|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|
Verifies properties required for releasing are set
- prefix: q.release.verifyproperties
|properties||version, tag, rolloverVersion|
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