| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // . |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // . |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| |
| include::temp-properties-files-for-site/attributes.adoc[] |
| |
| == Apache Tamaya -- Release Guide |
| |
| Performing a release requires several steps. This document describes each step, so everybody in the committer's |
| team should be able to perform the release procedure. |
| |
| |
| === Tell the others you would proceed with the release procedure |
| |
| [listing,text] |
| ---------------------------------------- |
| first steps for the next release |
| |
| hi @ all, |
| |
| if there are no objections, i'll start with the first steps for the next release (review, documentation,...). |
| it would be great to start with the release procedure next week. |
| |
| regards, |
| [name] |
| ---------------------------------------- |
| |
| |
| === Check everything is ready |
| |
| * Check the jenkins builds. |
| * Ensure all JIRA-tickets targeting the release are resolved. If not, get in contact with the ticket |
| owner/assignee to check |
| ** if the ticket can be postponed for the next release |
| ** how long it takes to resolve it and if one can help. |
| |
| |
| === Prepare the release |
| |
| * Create release notes and commit them to `tamaya/readme/` (format `ReleaseNotes-[version].html`) |
| * Create a release branch in git and switch to this branch: |
| |
| |
| ==== Using the release plugin |
| |
| For performing the release you can use the maven release plugin: |
| |
| [listing,text] |
| ---------------------------------------- |
| git checkout -b vote-tamaya-[release version] |
| |
| export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m" |
| mvn release:prepare -DdryRun=true -DperformRelease=true |
| |
| // optionally pass GPG params for signing with: -Darguments="-Dgpg.keyname=1336D3E6 -Dgpg.passphrase=XXXXXX" |
| |
| //copy prepared workspace (to continue faster if an upload fails in the next step) |
| ---------------------------------------- |
| |
| * If something fails you may switch to the master branch, fix whatever is needed and rebase your release branch to |
| accomodate the latest changes done. |
| * On success you can check the release packages from `dist/target`. |
| * If everything looks good you can proceed with the release: |
| |
| [listing,text] |
| ---------------------------------------- |
| export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m" |
| mvn release:prepare -DperformRelease=true |
| mvn release:perform -DperformRelease=true |
| ---------------------------------------- |
| |
| ==== Preparing the release without the Release Plugin |
| |
| The release plugin is great, but in some cases it breaks even, when release:prepare -DdryRun=true was successful. |
| Preparing the release vote without the release plugin is stright forward: |
| |
| * As described checkout a release branch of the current head |
| * Then us maven and git commands to prepare the release: |
| |
| [listing,text] |
| ---------------------------------------- |
| git checkout -b vote-tamaya-[release version] |
| |
| export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m" |
| mvn versions:set versions:commit -DnewVersion=[release version] -DperformRelease=true |
| |
| // build the release locally and sign it with your certs |
| mvn clean install -DperformRelease=true -Dgpg.keyname=1336D3E6 -Dgpg.passphrase=XXXXXX |
| |
| ---------------------------------------- |
| |
| * Check if everything is in place and correct, when finished you can tag and deploy the release... |
| |
| [listing,text] |
| ---------------------------------------- |
| mvn deploy -DperformRelease=true -Dgpg.keyname=1336D3E6 -Dgpg.passphrase=XXXXXX |
| ---------------------------------------- |
| |
| * check the created commits including user-name and email |
| * login to https://repository.apache.org/ and go to "Staging Repositories" |
| * check the contents of the newly created tamaya staging repository |
| * _close_ the repository to let Nexus do its validations |
| * On success: |
| * push the release-branch to the git repo |
| |
| [listing,text] |
| ---------------------------------------- |
| git add -A |
| git commit -m "Release Prepare: Set release version." |
| git tag vote01-[release-version] |
| git push --tags |
| ---------------------------------------- |
| |
| Finally open the next development version: |
| |
| [listing,text] |
| ---------------------------------------- |
| # example: newVersion=0.3-incubating-SNAPSHOT |
| mvn version:set versions:commit -DnewVersion=[development-version] |
| git add -A |
| git commit -m "Release Prepare: Open new development version." |
| ---------------------------------------- |
| |
| |
| |
| * Add the distribution artifacts to the dev repositories: |
| |
| [listing,text] |
| ---------------------------------------- |
| svn co https://dist.apache.org/repos/dist/dev/incubator/tamaya/ |
| mkdir [version] |
| set RELEASE_HOME='pwd'/[version] |
| cd PROJECT_ROOT |
| cp DISCLAIMER $RELEASE_HOME |
| cp NOTICE $RELEASE_HOME |
| cp LICENCE $RELEASE_HOME |
| cp rat.txt $RELEASE_HOME |
| |
| // Copy everything from |
| // $STAGING_REPO/distribution/0.2-incubating/tamaya-distribution-[version]-distribution-* into $RELEASE_HOME |
| |
| svn add [version] |
| svn commit --username <apacheId> |
| ---------------------------------------- |
| |
| * Check contents on https://dist.apache.org/repos/dist/dev/incubator/tamaya/[version] |
| |
| |
| === Start the vote |
| |
| [listing,text] |
| ---------------------------------------- |
| [VOTE] Release of Apache Tamaya [version] |
| |
| |
| Hi, |
| |
| I was running the needed tasks to get the [version] release of Apache Tamaya out. |
| The artifacts are deployed to Nexus [1] (and [2]) and releases [4]. |
| |
| The tag is available at [3] and will renamed once the vote passed. |
| |
| Please take a look at the artifacts and vote! |
| |
| Please note: |
| This vote is a "majority approval" with a minimum of three +1 votes (see [5]). |
| |
| ------------------------------------------------ |
| [ ] +1 for community members who have reviewed the bits |
| [ ] +0 |
| [ ] -1 for fatal flaws that should cause these bits not to be released, and why.............. |
| ------------------------------------------------ |
| |
| Thanks, |
| [name] |
| |
| [1] https://repository.apache.org/content/repositories/... |
| [2] https://repository.apache.org/content/repositories/org/apache/tamaya/tamaya-distribution/[version]/tamaya-[version]-source-release.zip |
| https://repository.apache.org/content/repositories/org/apache/tamaya/tamaya-distribution/[version]/tamaya-[version]-bin-release.zip |
| [3] https://git1-us-west.apache.org/repos/asf?p=incubator-tamaya.git;a=commit;h=2910da468fce16210e6dd77d8ba23ddbdd434efe |
| [4] https://dist.apache.org/repos/dist/dev/incubator/tamaya/[release-version] |
| [5] http://www.apache.org/foundation/voting.html#ReleaseVotes |
| ---------------------------------------- |
| |
| * Announce the Vote |
| ** Create a short link to the release at http://s.apache.org (format Tamaya_[version]) |
| ** Tweet about the vote via _@TamayaConf_ |
| |
| * After 72 hours close the vote write a reult email, e.g. |
| |
| [listing,text] |
| ---------------------------------------- |
| [Result] (was: Re: [VOTE] Release of Apache Tamaya [version]) |
| |
| thank you for voting! |
| |
| X binding +1 votes (pmc): |
| [list] |
| |
| Y non-binding +1 votes: |
| [list] |
| |
| Z -1 votes |
| [list] |
| ---------------------------------------- |
| |
| * After the vote on the PPMC has been finished and is successful, repeaat the voting process on the |
| incubator mailing list. |
| |
| |
| == Perform the release |
| |
| If the binding majority approved the vote on both lists continue: |
| |
| * Login to https://repository.apache.org/ and _release_ the repository |
| * Rename the vote branch: |
| |
| [listing,text] |
| ---------------------------------------- |
| git branch -m vote01-tamaya-[release-version] tamaya-[release-version] |
| ---------------------------------------- |
| |
| * Add a release tag: |
| |
| ---------------------------------------- |
| git tag -a tamaya-[release-version] |
| ---------------------------------------- |
| |
| * Merge master with the new prepared version: |
| |
| [listing,text] |
| ---------------------------------------- |
| git checkout master |
| git merge tamaya-[release-version] |
| git push origin tamaya-[release-version] |
| git push origin master |
| ---------------------------------------- |
| |
| * Close the release and corresponding tickets at JIRA |
| |
| * Wait some minutes and check `http://repo2.maven.org/maven2/org/apache/tamaya` |
| |
| * Upload the distribution Artifacts |
| |
| [listing,text] |
| ---------------------------------------- |
| svn co https://dist.apache.org/repos/dist/release/incubator/tamaya/ |
| mkdir [version] |
| // add and commit the artifacts (*source-release.zip, *bin-release.zip + asc, md5, sha1) |
| // use the artifacts from: |
| // http://repo1.maven.org/maven2/org/apache/tamaya/tamaya-distribution/[version]/ |
| ---------------------------------------- |
| |
| |
| === Updating the Tamaya Project Site |
| |
| Basically the new site should be directly deployable, just execute |
| |
| [listing,text] |
| ---------------------------------------- |
| mvn site site:deploy |
| ---------------------------------------- |
| |
| |
| === Announce the new version |
| |
| Announce the new version on @TamayaConf and other social media channels. Also drop a short mail on the amiling list. |