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:
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.
q.release.targets contains the correct targets in the correct order.quokka -Dq.release.rolloverVersion=1.1-ss release
q.release.targets
to only execute the remaining targets.
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 |
Verifies properties required for releasing are set
Default Properties
| 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