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.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.
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 |
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