Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Gyrex/Contributor Guide/Releng"
m (→Create maintenance branch and update Hudson) |
|||
Line 115: | Line 115: | ||
Note: this must only be done on major and/or minor release. This step is not necessary for maintenance releases. | Note: this must only be done on major and/or minor release. This step is not necessary for maintenance releases. | ||
# Create maintenance branch based on tag created above | # Create maintenance branch based on tag created above | ||
− | # Update Maven Parent, Target Platform and child POMs to next service SNAPSHOT version (just. | + | # Update Maven Parent, Target Platform and child POMs to next service SNAPSHOT version (just.released.version+1-SNAPSHOT) |
#* Follow the exact same steps as in the previous section on the maintenance branch | #* Follow the exact same steps as in the previous section on the maintenance branch | ||
# Update the configuration of [https://hudson.eclipse.org/gyrex/job/gyrex-latest/ gyrex-latest]: | # Update the configuration of [https://hudson.eclipse.org/gyrex/job/gyrex-latest/ gyrex-latest]: |
Revision as of 16:52, 28 January 2014
Please read through the following to get a better understanding of how releases are done.
Publishing Builds on download.eclipse.org
Builds get published automatically on download.eclipse.org. However, only I-Builds run automatically once per week. All other builds must be triggered manually.
Hudson: gyrex-latest
For producing development, milestone and major or minor release builds (no service releases).
https://hudson.eclipse.org/gyrex/job/gyrex-latest/
Parameter | Description | Integration Builds | Milestone Builds | Release Builds |
BUILD_TYPE | The type of a build. | I | S | R |
BUILD_IDENTIFIER | A specific identifier to label the build or empty to generate a default one. | (leave empty) | upcoming minor release (eg. 1.3) plus suffix (eg. M1, M2, ... RC1, RC2...) without space (eg. 1.3M1, 2.0RC1, ...) | major.minor for minor and major releases (eg. 1.3, 2.0); note: see below for service releases |
BUILD_BRANCH | The branch to build from. | should always be master (until instructed/discussed otherwise) | ||
PUBLISH_STREAM | The stream this gets published to on download.eclipse.org/gyrex/$PUBLISH_STREAM/...
|
should be the upcoming minor release (eg. 1.3) without last version component, just major.minor
|
Hudson: gyrex-maintenance
For producing service releases and maintenance builds out of the maintenance branch.
https://hudson.eclipse.org/gyrex/job/gyrex-maintenance/
Parameter | Description | Integration Builds | Milestone Builds |
BUILD_TYPE | The type of a build. | M | R |
BUILD_IDENTIFIER | A specific identifier to label the build or empty to generate a default one. | (leave empty) | major.minor.service, i.e. exact release version of service releases (eg. 1.3.1, 2.0.1, 2.1.4) |
BUILD_BRANCH | The branch to build from. | should be the "current" maintenance branch (eg. "maintenance/1.3" for 1.3.x builds) | |
PUBLISH_STREAM | The stream this gets published to on download.eclipse.org/gyrex/$PUBLISH_STREAM/...
|
should be the current minor release stream (eg. 1.3 for 1.3.x builds) without last version component, just major.minor
|
Performing a Release
The following outlines the steps necessary for producing a release.
Pre-Release Steps
- Publish a few milestone builds as release candidates (RC1, RC2, RC3 ...)
Update Maven Parent, Target Platform and child POMs to RELEASE version
- Update Maven
pom.xml
and remove-SNAPSHOT
version suffix from:-
gyrex-releng/mavenparent/pom.xml:
- project -> version
- project- > properties -> gyrex-target-platform.version
- Important: if you find any other *.version property in project- > properties containing a -SNAPSHOT suffix you MUST abort here! Revert any changes, then update those versions to the release versions and start again with publishing and testing at least one additional RC (release candidate) build!
-
gyrex-releng/targetplatform/pom.xml:
- project -> parent -> version
- all other POMs used in the build:
-
cd $GYREX_SERVER_REPO_ROOT
(if necessary) -
mvn versions:update-child-modules -f releng/aggregator/pom.xml -DgenerateBackupPoms=false
-
-
- Test build locally
-
cd $GYREX_SERVER_REPO_ROOT
(if necessary) -
mvn clean package -f releng/aggregator/pom.xml
-
- Commit changes and push to upstream at eclipse.org
Build and Publish Release
- Trigger build of the following Hudson job:
- gyrex-latest
- BUILD_TYPE: R
- BUILD_IDENTIFIER: see tables above
- BUILD_BRANCH and PUBLISH_STREAM as desired
- gyrex-latest
- When builds are OK, create a release tag
-
cd $GYREX_SERVER_REPO_ROOT
(if necessary) -
git tag -a Rwhatever -m 'Release whatever'
- Push tag to push to upstream at eclipse.org
-
Update Maven Parent, Target Platform and child POMs to next SNAPSHOT version
- Update Maven
pom.xml
and replace version withnext.minor.0-SNAPSHOT
version in:-
gyrex-releng/mavenparent/pom.xml:
- project -> version
- project- > properties -> gyrex-target-platform.version
-
gyrex-releng/targetplatform/pom.xml:
- project -> parent -> version
- all other POMs used in the build:
-
cd $GYREX_SERVER_REPO_ROOT
(if necessary) -
mvn versions:update-child-modules -f releng/aggregator/pom.xml -DgenerateBackupPoms=false
-
-
- Commit changes and push to upstream at eclipse.org
Create maintenance branch and update Hudson
Note: this must only be done on major and/or minor release. This step is not necessary for maintenance releases.
- Create maintenance branch based on tag created above
- Update Maven Parent, Target Platform and child POMs to next service SNAPSHOT version (just.released.version+1-SNAPSHOT)
- Follow the exact same steps as in the previous section on the maintenance branch
- Update the configuration of gyrex-latest:
- Set default of PUBLISH_STREAM parameter to new
next.minor
version
- Set default of PUBLISH_STREAM parameter to new
- Update the configuration of gyrex-maintenance:
- Set default of PUBLISH_STREAM parameter to the released
current.minor
version - Set default of BUILD_BRANCH parameter to the created
maintenance/current.minor
branch
- Set default of PUBLISH_STREAM parameter to the released