Repository: incubator-tamaya-site Updated Branches: refs/heads/asf-site 14b90f471 -> f4ba51a5d
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/f4ba51a5/release-guide.html ---------------------------------------------------------------------- diff --git a/release-guide.html b/release-guide.html index ac0317f..55ffec4 100644 --- a/release-guide.html +++ b/release-guide.html @@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8"/> - <title>Apache Tamaya: Release Guide</title> + <title>Apache Tamaya Release Guide</title> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="description" content=""/> <meta name="author" content=""/> @@ -121,397 +121,986 @@ <div class="container"> <div class="page-header"> - <h1>Apache Tamaya: Release Guide</h1> + <h1>Apache Tamaya Release Guide</h1> </div> - <p><em>2017-06-06</em></p> + <p><em>2017-09-01</em></p> <p><div id="preamble"> <div class="sectionbody"> +<div class="paragraph lead"> +<p>This document describes how to perform a release of Apache Tamaya +API&Core and Apache Tamaya Extensions during +its incubation. It contains a step by step description of each step, +so everybody in the commiters’s team will be able to perform +the release procedure during the incubation phase. +Differences in the procedure between Tamaya API&Core and Tamaya +Extensions are mentioned.</p> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_prerequisites">1. Prerequisites</h2> +<div class="sectionbody"> <div class="paragraph"> -<p>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.</p> +<p>This section describes the prerequisite which must be given to +perform the release procedure.</p> +</div> +<div class="olist upperroman"> +<ol class="upperroman" type="I"> +<li> +<p>Subversion client, needed to upload the source distribution.</p> +</li> +<li> +<p>Git</p> +</li> +<li> +<p>A valid GPG key, needed to sign all artifacts created during +the release process.</p> +</li> +</ol> </div> </div> </div> <div class="sect1"> -<h2 id="_tell_the_others_you_would_proceed_with_the_release_procedure">1. Tell the others you would proceed with the release procedure</h2> +<h2 id="_performing_the_release">2. Performing the release</h2> <div class="sectionbody"> +<div class="sect2"> +<h3 id="_tell_the_others_you_would_proceed_with_the_release_procedure">2.1. Tell the others you would proceed with the release procedure</h3> +<div class="paragraph"> +<p>The first step is to announce on developer mailing list that +you plan to release a new version of Tamaya API&Core as well +as of the Tamaya Extensions.</p> +</div> +<div class="paragraph"> +<p>Take the mail template below, adapt it if necessary, an send it +to <a href="mailto:[email protected]">[email protected]</a>.</p> +</div> <div class="listingblock"> +<div class="title">Subject of the announcement of an upcomming release</div> <div class="content"> -<pre>first steps for the next release - -Hi @ all, +<pre>Starting with the preparation of the next release of <<project>></pre> +</div> +</div> +<div class="listingblock"> +<div class="title">Body of the announcement of an upcomming release.</div> +<div class="content"> +<pre>Dear all, If there are no objections, I'll start with the first steps for -the next release (review, documentation,...). +the next release of <<project>> (review, documentation,...). It would be great to start with the release procedure next week. Best regards, -[name]</pre> +<<your name>></pre> +</div> </div> +<div class="paragraph"> +<p>Don’t expect that everyone will response immediately as we all are very +busy. So be patient with you team members. Meanwhile you can +proceed with the release preparations.</p> </div> </div> +<div class="sect2"> +<h3 id="_check_if_everything_is_ready">2.2. Check if everything is ready</h3> +<div class="paragraph"> +<p>The following items must be done before you can start with the +actual release process.</p> </div> -<div class="sect1"> -<h2 id="_check_everything_is_ready">2. Check everything is ready</h2> -<div class="sectionbody"> -<div class="ulist"> -<ul> +<div class="olist arabic"> +<ol class="arabic"> <li> -<p>Check the jenkins builds.</p> +<p>Check if the build chains in +<a href="https://builds.apache.org/view/Tamaya/" target="_blank">Apache’s Jenkins</a> +of the project in to be released are fine and where are +no problems with the build and quality of the project.</p> </li> <li> -<p>Ensure all JIRA-tickets targeting the release are resolved. If not, get in contact with the ticket -owner/assignee to check</p> -<div class="ulist"> -<ul> +<p>Ensure that all +<a href="https://issues.apache.org/jira/projects/TAMAYA" target="_blank">JIRA</a> issues +targeting the upcomming release are resolved. +If not, get in contact with the issue assignee or the reporter to +check</p> +<div class="olist loweralpha"> +<ol class="loweralpha" type="a"> <li> -<p>if the ticket can be postponed for the next release</p> +<p>if the issue can be postponed for the next release</p> </li> <li> -<p>how long it takes to resolve it and if one can help.</p> +<p>how long it takes to resolve it and if someone can help.</p> </li> -</ul> +</ol> </div> </li> -</ul> -</div> +</ol> </div> </div> -<div class="sect1"> -<h2 id="_prepare_the_release">3. Prepare the release</h2> -<div class="sectionbody"> +<div class="sect2"> +<h3 id="_prepare_the_release_notes">2.3. Prepare the release notes</h3> <div class="ulist"> <ul> <li> -<p>Create release notes and commit them to <code>tamaya/readme/</code> (format <code>ReleaseNotes-[version].html</code>)</p> -</li> -<li> -<p>Create a release branch in git and switch to this branch:</p> +<p>Create release notes and commit them to the <code>/readme/</code> +directory of the project. The file name of the release +notes document should be <code>ReleaseNotes-[version].html</code>.</p> </li> </ul> </div> +<div class="admonitionblock tip"> +<table> +<tr> +<td class="icon"> +<div class="title">Tip</div> +</td> +<td class="content"> +<div class="paragraph"> +<p>Ensure that you include only notes an the release notes +which affect the project you are releasing. +For instance a notes on an issues which affects Tamaya Extensions +should not be included in the release notes of Tamaya API&Core.</p> +</div> +</td> +</tr> +</table> +</div> +</div> <div class="sect2"> -<h3 id="_using_the_release_plugin">3.1. Using the Release Plugin</h3> +<h3 id="_preparing_the_vote_of_the_ppmc_on_the_release">2.4. Preparing the vote of the PPMC on the release</h3> <div class="paragraph"> -<p>For performing the release you can use the maven release plugin:</p> +<p>If you are sure that everything is ready for the +next release you can start the vote of the PPMC +on the proposed release.</p> +</div> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<div class="title">Important</div> +</td> +<td class="content"> +<div class="paragraph"> +<p>Keep in mind that preparing the release +really means only to prepare the release by +uploading it to the dev area of the +<a href="https://dist.apache.org" target="_blank">distribution +server of the Apache project</a> and to a staging +repository of <a href="https://repository.apache.org" target="_blank">Apache’s Nexus</a>.</p> </div> -<div class="listingblock"> -<div class="content"> -<pre>$ 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)</pre> +<div class="paragraph"> +<p>You must not publish the artifacts created during +the preparation of the release until the IPMC as well +as the PPMC of Apache Tamaya have approved the release.</p> </div> +</td> +</tr> +</table> </div> -<div class="ulist"> -<ul> -<li> -<p>If something fails you may switch to the master branch, fix whatever is needed and rebase your release branch to -accommodate the latest changes done.</p> -</li> -<li> -<p>On success you can check the release packages from <code>dist/target</code>.</p> -</li> -<li> -<p>If everything looks good you can proceed with the release:</p> -</li> -</ul> +<div class="paragraph"> +<p>Before you can present the proposed release to the +IPMC of the Apache Incubator, the proposed release must be +approved by the PPMC of the Tamaya project.</p> </div> -<div class="listingblock"> -<div class="content"> -<pre>$ export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m" -$ mvn release:prepare -DperformRelease=true -$ mvn release:perform -DperformRelease=true</pre> +<div class="paragraph"> +<p>Therefore you must run a vote on the proposed release +by creating a vote candidat in the Git repository of +the project, uploading the source distribution +to the dev area of the distribution server of the Apache +project and uploading the Maven artifacts to a staging +repository in Apache’s Nexus. This sounds complicated +but it isn’t that complicated if you follow the steps +of this guide.</p> </div> +<div class="paragraph"> +<p>In case the vote candidate does not pass the vote of +the PPMC or the IPMC you can choose between +canceling the current attempt for the next release +or you try to fix the issues which hinders people to +vote with yes. If you have choosen the second +way then you have to prepare a new vote candidat.</p> </div> </div> <div class="sect2"> -<h3 id="_preparing_the_release_without_the_release_plugin">3.2. Preparing the release without the Release Plugin</h3> +<h3 id="_preparing_the_release_without_the_release_plugin">2.5. Preparing the release without the Release Plugin</h3> +<div class="admonitionblock note"> +<table> +<tr> +<td class="icon"> +<div class="title">Note</div> +</td> +<td class="content"> <div class="paragraph"> -<p>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:</p> +<p>We tried to use the <a href="http://maven.apache.org/maven-release/maven-release-plugin/" target="_blank">Maven Release Plugin</a> +to increase the level of automatisation of the release process, but +we were not able to get the Maven Release Plugin working as we +need it for our release process. Therefore we decided not to use +it.</p> </div> -<div class="ulist"> -<ul> -<li> -<p>As described checkout a release branch of the current head</p> -</li> -<li> -<p>Then us maven and git commands to prepare the release:</p> -</li> -</ul> +</td> +</tr> +</table> +</div> +<div class="paragraph"> +<p>The first step is to create a separate branch for the release canidate. +The name should consist of the release version and the number of the +voting candidate.</p> +</div> +<div class="paragraph"> +<p>For example if you would like to run a vote for the 1.0 release of +Tamaya API&Core during its incubation for the second time, the usual +branch name would be <code>vote-1.0-incubating-02</code>.</p> +</div> +<div class="paragraph"> +<p>Follow the instructions below to create the branch for the vote +and to build the vote candidate.</p> </div> <div class="listingblock"> +<div class="title">Creating the vote branch and building the vote candidat</div> <div class="content"> -<pre>$ git checkout -b vote-tamaya-[release version] +<pre>$ git checkout -b vote-[release version]-[attempt] <b class="conum">(1)</b> <b class="conum">(2)</b> $ 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</pre> +$ mvn clean install -DperformRelease=true -Dgpg.keyname=[key] -Dgpg.passphrase=[passphrase] <b class="conum">(3)</b> <b class="conum">(4)</b></pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Check if everything is in place and correct, when finished you can tag and deploy the release…​</p> +<p>The version number of the planed release, e.g. <code>0.4-incubating</code></p> </li> -</ul> -</div> -<div class="listingblock"> -<div class="content"> -<pre>$ mvn deploy -DperformRelease=true -Dgpg.keyname=1336D3E6 -Dgpg.passphrase=XXXXXX</pre> -</div> -</div> -<div class="ulist"> -<ul> <li> -<p>check the created commits including user-name and email</p> +<p>The number of the current vote, e.g. <code>03</code></p> </li> <li> -<p>login to <a href="https://repository.apache.org/" class="bare" target="_blank">https://repository.apache.org/</a> and go to "Staging Repositories"</p> +<p>The id of your GPG key.</p> </li> <li> -<p>check the contents of the newly created tamaya staging repository</p> +<p>The passphrase of you GPG key.</p> </li> +</ol> +</div> +<div class="paragraph"> +<p>Now you can check the source distribution and the Maven artifacts created +during the build.</p> +</div> +<div class="paragraph"> +<p>If everything is correct, deploy them to a staging repository on Apache’s +Nexus.</p> +</div> +<div class="listingblock"> +<div class="title">Deploying the vote candidate to Apache’s Nexus'</div> +<div class="content"> +<pre>$ mvn deploy</pre> +</div> +</div> +<div class="paragraph"> +<p>After deploying the artifacts you have to check the staging repository +created in Apache’s Nexus:</p> +</div> +<div class="olist arabic"> +<ol class="arabic"> <li> -<p><em>close</em> the repository to let Nexus do its validations</p> +<p>Login to <a href="https://repository.apache.org/" class="bare" target="_blank">https://repository.apache.org/</a> and go to <em>Staging Repositories</em>.</p> </li> <li> -<p>On success:</p> +<p>Check the Contents of the newly create staging repository for you release.</p> </li> <li> -<p>push the release-branch to the git repo</p> +<p>Close the staging repository to let Nexus do its validations on the deployed +artifacts.</p> </li> -</ul> +</ol> +</div> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<div class="title">Important</div> +</td> +<td class="content"> +Do not release the content of the stating repository right now. + Releasing means to publish the artifacts. This will be done + after a successful vote of the IPMC. +</td> +</tr> +</table> +</div> +<div class="paragraph"> +<p>If everything is correct until now, commit your local changes, create a tag for +the voting candidate and push the tag and your commits to the Git +repository.</p> </div> <div class="listingblock"> +<div class="title">Commiting the changes done for the vote candidate</div> <div class="content"> <pre>$ git add -A $ git commit -m "Release Prepare: Set release version." -$ git tag vote01-[release-version] +$ git tag vote-[release version]-[attempt] $ git push --tags</pre> </div> </div> +<div class="colist arabic"> +<ol> +<li> +<p>The version number of the planed release, e.g. <code>0.4-incubating</code></p> +</li> +<li> +<p>The number of the current vote, e.g. <code>03</code></p> +</li> +</ol> +</div> <div class="paragraph"> -<p>Finally open the next development version:</p> +<p>Finally open the next development version of the project.</p> </div> <div class="listingblock"> +<div class="title">Set next development version of the project</div> <div class="content"> -<pre># example: newVersion=0.3-incubating-SNAPSHOT -$ mvn version:set versions:commit -DnewVersion=[development-version] +<pre>$ mvn version:set versions:commit -DnewVersion=[development version] <b class="conum">(1)</b> $ git add -A $ git commit -m "Release Prepare: Open new development version."</pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Add the distribution artifacts to the dev repositories:</p> +<p>Next development version, e.g. <code>0.83-incubating-SNAPSHOT</code></p> </li> -</ul> +</ol> +</div> +<div class="paragraph"> +<p>After setting the new development version you have to add the source +distribution to the distribution repository at <a href="https://dist.apache.org/repos/dist/" class="bare" target="_blank">https://dist.apache.org/repos/dist/</a>.</p> +</div> +<div class="admonitionblock important"> +<table> +<tr> +<td class="icon"> +<div class="title">Important</div> +</td> +<td class="content"> +The source distribution and all required artifacts must be added + to the development directory of Apache’s distribution server. + After the approvement of the release candidate by the PPMC and + the IPMC they will be moved to the release directory. +</td> +</tr> +</table> </div> <div class="listingblock"> +<div class="title">Adding all needed artifacts to distribution repository</div> <div class="content"> <pre>$ svn co https://dist.apache.org/repos/dist/dev/incubator/tamaya/ -$ mkdir [version] -$ set RELEASE_HOME='pwd'/[version] -$ cd PROJECT_ROOT +$ mkdir [release version]/[project] <b class="conum">(1)</b> +$ set RELEASE_HOME=`pwd`/[release version]/[project] +$ set PROJECT_ROOT=[repository of the project] <b class="conum">(2)</b> +$ 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 +$ cp keys/KEYS $RELEASE_HOME +$ cp $PROJECT_ROOT/cp distribution/target/*{.tar.gz,.zip,.asc} $RELEASE_HOME <b class="conum">(3)</b> $ svn add [version] -$ svn commit --username <apacheId></pre> +$ svn add [version]/[project]</pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Check contents on <a href="https://dist.apache.org/repos/dist/dev/incubator/tamaya/">version</a></p> +<p>We store the artifacts of Tamaya API&Core and Tamaya Extensions always +in different subdirectories. So <em>project</em> can be either +<code>apiandcore</code> or <code>extensions</code>.</p> </li> -</ul> +<li> +<p><code>PROJECT_ROOT</code> is the Git repository of the project which you want to +release.</p> +</li> +<li> +<p>This command copies both distribution archives to <code>$RELEASE_HOME</code>.</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Additionally there must be a SHA-1 and MD5 sigature file for each distribution +archive and its GPG signature (<code>.asc</code>). To generate them you need programs +like <code>md5</code> and <code>shasum</code>. The name of these programs might vary from system to system.</p> +</div> +<div class="listingblock"> +<div class="title">Generating the required SHA-1 and MD5 signatures</div> +<div class="content"> +<pre>$ cd $RELEASE_HOME +$ for f in $(ls *{.tar.gz,.zip,.asc}); do shasum -a 1 $f > ${f}.sha1; md5 $f > ${f}.md5; done</pre> +</div> +</div> +<div class="paragraph"> +<p>After generating the signature files you can add and commit all files and artifacts +of the source distribution.</p> +</div> +<div class="listingblock"> +<div class="title">Adding and commiting the source distribution</div> +<div class="content"> +<pre>$ cd $RELEASE_HOME +$ svn add [project] +$ svn add [version] +$ svn commit --username [Apache ID]</pre> +</div> +</div> +<div class="paragraph"> +<p>All commited files and artifacts should be now available via +<a href="https://dist.apache.org/repos/dist/dev/incubator/tamaya/" target="_blank">https://dist.apache.org/repos/dist/dev/incubator/tamaya/[version]/[project]</a>.</p> </div> </div> </div> </div> <div class="sect1"> -<h2 id="_start_the_vote">4. Start the vote</h2> +<h2 id="_run_the_vote_on_the_release_candidate">3. Run the vote on the release candidate</h2> <div class="sectionbody"> +<div class="sect2"> +<h3 id="_run_the_internally">3.1. Run the internally</h3> +<div class="paragraph"> +<p>The next step is to prepare the vote on <a href="mailto:[email protected]" target="_blank">[email protected]</a>. +The mail must contain serveral links, e.g. a link to the source distribution +and a link to the tag in the Git repository.</p> +</div> +<div class="paragraph"> +<p>The following links are needed for the mail:</p> +</div> +<div class="olist arabic"> +<ol class="arabic"> +<li> +<p>A link to the source distribution in the dev section of the distribution repository +at <a href="https://dist.apache.org/repos/dist/dev/incubator/tamaya/" class="bare" target="_blank">https://dist.apache.org/repos/dist/dev/incubator/tamaya/</a>.</p> +</li> +<li> +<p>A link to the tag of the release candidate, taken from +<a href="https://git1-us-west.apache.org/repos/asf?p=incubator-tamaya.git;a=summary" class="bare" target="_blank">https://git1-us-west.apache.org/repos/asf?p=incubator-tamaya.git;a=summary</a>.</p> +</li> +<li> +<p>A link to the staging repository for the release candidate of the intended +relase at <a href="http://repository.apache.org/content/repositories" class="bare" target="_blank">http://repository.apache.org/content/repositories</a>.</p> +</li> +<li> +<p>A link to to the <a href="http://www.apache.org/foundation/voting.html#ReleaseVotes" target="_blank">rules for release votes</a> +in the <em>Apache Voting Process</em> document.</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Take the mail template below, insert the links, an send it +to <a href="mailto:[email protected]">[email protected]</a>.</p> +</div> <div class="listingblock"> +<div class="title">Subject of the vote on the release candidate</div> <div class="content"> -<pre>[VOTE] Release of Apache Tamaya [version] +<pre>[Vote] Release of [project] [version] <b class="conum">(1)</b> <b class="conum">(2)</b></pre> +</div> +</div> +<div class="colist arabic"> +<ol> +<li> +<p>Replace <em>project</em> by either Apache Tamaya API&Core or Apache Tamaya Extensions</p> +</li> +<li> +<p>Replace <em>version</em> by the version number of the release</p> +</li> +</ol> +</div> +<div class="listingblock"> +<div class="title">Body of the vote on the release candidate</div> +<div class="content"> +<pre>[VOTE] Release of [project] [version] <b class="conum">(1)</b> <b class="conum">(2)</b> 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. +I was running the needed tasks to get the [version] release of [project] out. <b class="conum">(1)</b> <b class="conum">(2)</b> +The artifacts available via the Apache distribution repository [1] and +also via Apache's Nexus [2]. +The tag for this release candidate is available at [3] and will be 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]). +This vote is a "majority approval" with a minimum of three +1 votes (see [4]). ------------------------------------------------ [ ] +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.............. +[ ] -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</pre> +[1] [link to the source distribution] <b class="conum">(3)</b> +[2] [link to the staging repository at Apache's Nexus] <b class="conum">(4)</b> +[3] [link to the tag in the Git repository] <b class="conum">(5)</b> +[4] http://www.apache.org/foundation/voting.html#ReleaseVotes</pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Announce the Vote</p> -<div class="ulist"> -<ul> +<p>Replace <em>project</em> by the name of the project to be release, which can be +<em>Apache Tamaya API&Core</em> or <em>Apache Tamaya Extensions</em>.</p> +</li> <li> -<p>Create a short link to the release at <a href="http://s.apache.org" class="bare">http://s.apache.org</a> (format Tamaya_[version])</p> +<p>Replease <em>version</em> by the version number of the intended release.</p> </li> <li> -<p>Tweet about the vote via <em>@TamayaConf</em></p> +<p>Insert here the link to the source distribution of the project +in the dev section of distribution repository +at <a href="https://dist.apache.org/repos/dist/dev/incubator/tamaya/" class="bare" target="_blank">https://dist.apache.org/repos/dist/dev/incubator/tamaya/</a>.</p> </li> -</ul> +<li> +<p>Insert here the link to the staging repository for the release candidate +at <a href="http://repository.apache.org/content/repositories" class="bare" target="_blank">http://repository.apache.org/content/repositories</a>.</p> +</li> +<li> +<p>Insert here the link to the tag created for the release candidate +in the Git repository.</p> +</li> +</ol> </div> +<div class="paragraph"> +<p>Wait at least 72 hours before you close the result. If there is not enough attention +at the mailing list to vote, send a nice reminder to the list. Please keep in mind +that people might be simple to busy to respond on your vote.</p> +</div> +<div class="paragraph"> +<p>To close the vote count all single votes and send the result as reply to your +initial mail to the mailinglist by using the templates below.</p> +</div> +<div class="listingblock"> +<div class="title">Subject of the mail with the result of the vote</div> +<div class="content"> +<pre>[Result] (was: Re: [VOTE] Release of [project] [version]) <b class="conum">(1)</b> <b class="conum">(2)</b></pre> +</div> +</div> +<div class="colist arabic"> +<ol> +<li> +<p>Replace <em>project</em> by the name of the project to be release, which can be +<em>Apache Tamaya API&Core</em> or <em>Apache Tamaya Extensions</em>.</p> </li> <li> -<p>After 72 hours close the vote write a reult email, e.g.</p> +<p>Replease <em>version</em> by the version number of the intended release.</p> </li> -</ul> +</ol> </div> <div class="listingblock"> +<div class="title">Body of the mail with the result of the vote</div> <div class="content"> -<pre>[Result] (was: Re: [VOTE] Release of Apache Tamaya [version]) - -Thank you for voting! +<pre>Thank you for voting! -X binding +1 votes (pmc): -[list] +X binding +1 votes (PPMC): <b class="conum">(1)</b> +[list] <b class="conum">(2)</b> -Y non-binding +1 votes: -[list] +Y non-binding +1 votes: <b class="conum">(3)</b> +[list] <b class="conum">(4)</b> -Z -1 votes -[list]</pre> +Z -1 votes: <b class="conum">(5)</b> +[list] <b class="conum">(6)</b></pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>After the vote on the PPMC has been finished and is successful, repeat the voting process on the -incubator mailing list.</p> +<p>Replace <em>X</em> by the number of positive votes by PPMC members</p> </li> -</ul> +<li> +<p>Replace <em>list</em> by the names of PPMC members with a positive vote</p> +</li> +<li> +<p>Replace <em>Y</em> by the number of non-binding positive votes by +non-PPMC members</p> +</li> +<li> +<p>Replace <em>list</em> by the names of non-PPMC members with a positive vote</p> +</li> +<li> +<p>Replace <em>Z</em> by the number of negative votes by PPMC members</p> +</li> +<li> +<p>Replace <em>list</em> by the names of PPMC members with a negative vote</p> +</li> +</ol> </div> +<div class="paragraph"> +<p>After the vote on the PPMC has been finished and is successful, +repeat the voting process on the incubator mailing list.</p> </div> </div> -<div class="sect1"> -<h2 id="_perform_the_release">5. Perform the release</h2> -<div class="sectionbody"> +<div class="sect2"> +<h3 id="_let_the_ipmc_vote_on_the_release_candidate">3.2. Let the IPMC vote on the release candidate</h3> <div class="paragraph"> -<p>If the binding majority approved the vote on both lists continue:</p> +<p>During the incubation phase of Tamaya, each release must be approved +by the IPMC.</p> </div> -<div class="ulist"> -<ul> +<div class="paragraph"> +<p>The first step is to subscribe to the mailinglist +<a href="mailto:[email protected]">[email protected]</a>. +More information and how to do this can be found on +<a href="https://incubator.apache.org/guides/lists.html" class="bare" target="_blank">https://incubator.apache.org/guides/lists.html</a>.</p> +</div> +<div class="paragraph"> +<p>The mail, which must be send to the list, is quite similar +to the one for the PPMC, but it must also contain a link +to the mail thread of the successful vote of the PPMC. +The archive of the developers mailinglist of Apache Tamaya +can be found at <a href="https://lists.apache.org" class="bare" target="_blank">https://lists.apache.org</a>.</p> +</div> +<div class="paragraph"> +<p>The mail to the IPMC can be composed by using these both +templates:</p> +</div> +<div class="listingblock"> +<div class="title">Subject of the vote on the release candidate</div> +<div class="content"> +<pre>[Vote] Release of [project] [version] <b class="conum">(1)</b> <b class="conum">(2)</b></pre> +</div> +</div> +<div class="colist arabic"> +<ol> <li> -<p>Login to <a href="https://repository.apache.org/" class="bare">https://repository.apache.org/</a> and <em>release</em> the repository</p> +<p>Replace <em>project</em> by either Apache Tamaya API&Core or Apache Tamaya Extensions</p> </li> <li> -<p>Rename the vote branch:</p> +<p>Replace <em>version</em> by the version number of the release</p> </li> -</ul> +</ol> </div> <div class="listingblock"> +<div class="title">Body of the vote on the release candidate</div> <div class="content"> -<pre>$ git branch -m vote01-tamaya-[release-version] tamaya-[release-version]</pre> +<pre>[VOTE] Release of [project] [version] <b class="conum">(1)</b> <b class="conum">(2)</b> + +Dear IPMC members, + +The Apache Tamaya project was running the needed tasks to get +the [version] release of [project] out. <b class="conum">(1)</b> <b class="conum">(2)</b> + +The artifacts available via the Apache distribution repository [1] and +also via Apache's Nexus [2]. + +The tag for this release candidate is available at [3] + +The mail thread of the vote can be found at [4]. + +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 IPMC members who approve this release +[ ] +0 for IPMC members with no opinion on this release +[ ] -1 for IPMC members who reject this release, and why ... +------------------------------------------------ + +Thanks, +[name] + +[1] [link to the source distribution] <b class="conum">(3)</b> +[2] [link to the staging repository at Apache's Nexus] <b class="conum">(4)</b> +[3] [link to the tag in the Git repository] <b class="conum">(5)</b> +[4] [link to the thread of the vote by the PPMC.] <b class="conum">(6)</b> +[5] http://www.apache.org/foundation/voting.html#ReleaseVotes</pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Add a release tag:</p> +<p>Replace <em>project</em> by the name of the project to be release, which can be +<em>Apache Tamaya API&Core</em> or <em>Apache Tamaya Extensions</em>.</p> </li> -</ul> +<li> +<p>Replease <em>version</em> by the version number of the intended release.</p> +</li> +<li> +<p>Insert here the link to the source distribution of the project +in the dev section of distribution repository +at <a href="https://dist.apache.org/repos/dist/dev/incubator/tamaya/" class="bare" target="_blank">https://dist.apache.org/repos/dist/dev/incubator/tamaya/</a>.</p> +</li> +<li> +<p>Insert here the link to the staging repository for the release candidate +at <a href="http://repository.apache.org/content/repositories" class="bare" target="_blank">http://repository.apache.org/content/repositories</a>.</p> +</li> +<li> +<p>Insert here the link to the tag created for the release candidate +in the Git repository.</p> +</li> +<li> +<p>Insert here the link to vote thread on Tamaya’s developer mailinglist +for this release candidate</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Send the mail to [email protected] and let +the vote run for at least 72 hours.</p> +</div> +<div class="paragraph"> +<p>To close the vote count all single votes and send the result as reply +to your initial mail to the mailinglist by using the templates below:</p> </div> <div class="listingblock"> +<div class="title">Subject of the mail with the result of the vote</div> <div class="content"> -<pre>$ git tag -a tamaya-[release-version]</pre> +<pre>[Result] (was: Re: [VOTE] Release of [project] [version]) <b class="conum">(1)</b> <b class="conum">(2)</b></pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Merge master with the new prepared version:</p> +<p>Replace <em>project</em> by the name of the project to be release, which can be +<em>Apache Tamaya API&Core</em> or <em>Apache Tamaya Extensions</em>.</p> </li> -</ul> +<li> +<p>Replease <em>version</em> by the version number of the intended release.</p> +</li> +</ol> </div> <div class="listingblock"> +<div class="title">Body of the mail with the result of the vote</div> <div class="content"> -<pre>$ git checkout master -$ git merge tamaya-[release-version] -$ git push origin tamaya-[release-version] -$ git push origin master</pre> +<pre>Thank you for voting! + +X binding +1 votes (PPMC): <b class="conum">(1)</b> +[list] <b class="conum">(2)</b> + +Y non-binding +1 votes: <b class="conum">(3)</b> +[list] <b class="conum">(4)</b> + +Z -1 votes: <b class="conum">(5)</b> +[list] <b class="conum">(6)</b></pre> </div> </div> -<div class="ulist"> -<ul> +<div class="colist arabic"> +<ol> <li> -<p>Close the release and corresponding tickets at JIRA</p> +<p>Replace <em>X</em> by the number of positive votes by IPMC members</p> </li> <li> -<p>Wait some minutes and check <a href="http://repo2.maven.org/maven2/org/apache/tamaya" class="bare" target="_blank">http://repo2.maven.org/maven2/org/apache/tamaya</a></p> +<p>Replace <em>list</em> by the names of IPMC members with a positive vote</p> </li> <li> -<p>Upload the distribution Artifacts</p> +<p>Replace <em>Y</em> by the number of non-binding positive votes by +non-IPMC members</p> </li> -</ul> +<li> +<p>Replace <em>list</em> by the names of non-PPMC members with a positive vote</p> +</li> +<li> +<p>Replace <em>Z</em> by the number of negative votes by IPMC members</p> +</li> +<li> +<p>Replace <em>list</em> by the names of IPMC members with a negative vote</p> +</li> +</ol> +</div> +</div> +</div> +</div> +<div class="sect1"> +<h2 id="_performing_the_release_2">4. Performing the release</h2> +<div class="sectionbody"> +<div class="paragraph"> +<p>The actually release process can be started if the binding majority +of IPMC members have approved the release candidate.</p> +</div> +<div class="paragraph"> +<p>The first task is to create branch for the new release +out of the branch, created for the vote on the release candidate.</p> +</div> +<div class="sect2"> +<h3 id="_tag_and_branch_for_the_release">4.1. Tag and branch for the release</h3> +<div class="paragraph"> +<p>Creating this branch requires multiple commands, as Git does not +allow to simply rename a remote branch. The listing below shows +which commands are needed to create a branch for the new release</p> </div> <div class="listingblock"> +<div class="title">Renaming the branch of the release candidate</div> <div class="content"> -<pre>$ 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]/</pre> +<pre>$ git checkout master <b class="conum">(1)</b> +$ git branch release-[version] vote-[version]-[attempt] <b class="conum">(2)</b> <b class="conum">(3)</b> <b class="conum">(4)</b> +$ git push origin release-[version]:refs/heads/release-[version] <b class="conum">(5)</b> +$ git push origin :vote-[version]-[attempt] <b class="conum">(6)</b> +$ git branch -D vote-[version]-[attempt] <b class="conum">(7)</b> +$ git checkout -b release-[version] --track origin/release-[version] <b class="conum">(8)</b></pre> </div> </div> +<div class="colist arabic"> +<ol> +<li> +<p>Switching back to <code>master</code></p> +</li> +<li> +<p>Creating a release branch out of the vote branch</p> +</li> +<li> +<p>Replace <em>version</em> by the version number of the release</p> +</li> +<li> +<p>Replace <em>attempt</em> by the number of the successful vote attempt</p> +</li> +<li> +<p>Pushing the new branch under the same name to the blessed repository</p> +</li> +<li> +<p>Delete the vote branch in the blessed remote repository</p> +</li> +<li> +<p>Delete the branch locally</p> +</li> +<li> +<p>Checkout the new release branch and set the corresponding +remote branch as upstream branch</p> +</li> +</ol> </div> +<div class="paragraph"> +<p>Now create a new tag for the release based on the exsting tag +for the release candidate and delete the tag made for +the release candidate:</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre>$ git tag release-[version] vote-[version]-[attempt] <b class="conum">(1)</b> <b class="conum">(2)</b> <b class="conum">(3)</b> +$ git tag -d vote-[version]-[attempt] <b class="conum">(4)</b> +$ git push origin :vote-[version]-[attempt] <b class="conum">(5)</b> +$ git push --tags origin <b class="conum">(6)</b></pre> +</div> +</div> +<div class="colist arabic"> +<ol> +<li> +<p>Creating a release tag for the release</p> +</li> +<li> +<p>Replace <em>version</em> by the version number of the release</p> +</li> +<li> +<p>Replace <em>attempt</em> by the number of the successful vote attempt</p> +</li> +<li> +<p>Delete the tag made for the vote locally</p> +</li> +<li> +<p>Delete tag tag mode for the vote in the blessed remote repository</p> +</li> +<li> +<p>Push the new tag to the remote repository</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Now you can merge the new release branch with the prepared +development version to master.</p> +</div> +<div class="listingblock"> +<div class="title">Merging the release branch to <code>master</code></div> +<div class="content"> +<pre>$ git checkout master +$ git merge release-[version] +$ git push origin master</pre> +</div> +</div> +</div> +<div class="sect2"> +<h3 id="_cleanup_jira">4.2. Cleanup Jira</h3> +<div class="paragraph"> +<p>Login into <a href="https://issues.apache.org/jira/browse/tamaya">Apache’s Jira</a> and +close all issues in the +<a href="https://issues.apache.org/jira/browse/tamaya" target="_blank">Tamaya project</a>.</p> +</div> +</div> +<div class="sect2"> +<h3 id="_release_the_staging_repository">4.3. Release the staging repository</h3> +<div class="paragraph"> +<p>Login into <a href="https://repository.apache.org/" target="_blank">Apaches Nexus</a> and +release to staging repository for the new release.</p> </div> -<div class="sect1"> -<h2 id="_updating_the_tamaya_project_site">6. Updating the Tamaya Project Site</h2> -<div class="sectionbody"> <div class="paragraph"> -<p>Basically the new site should be directly deployable, just execute</p> +<p>Then wait some minutes and check if the artifacts have become +available at <a href="http://repo2.maven.org/maven2/org/apache/tamaya" class="bare" target="_blank">http://repo2.maven.org/maven2/org/apache/tamaya</a>.</p> +</div> +</div> +<div class="sect2"> +<h3 id="_releasing_the_distribution_artifacts">4.4. Releasing the distribution artifacts</h3> +<div class="paragraph"> +<p>The source distribution of the release candidate must now be +moved from the dev section of the distribution repository +to the release section.</p> +</div> +<div class="paragraph"> +<p>An easy way to achive this is to use the <code>svn mv</code> command +only with remote URLs. Before you move the distribution artifacts, +make sure the the directory for the version of the projects exists.</p> </div> <div class="listingblock"> +<div class="title">Checking if the target directory exists in SVN</div> <div class="content"> -<pre>$ mvn site site:deploy</pre> +<pre>$ svn ls https://dist.apache.org/repos/dist/release/incubator/tamaya</pre> +</div> +</div> +<div class="paragraph"> +<p>If the directory does not exists, create it.</p> +</div> +<div class="listingblock"> +<div class="title">Creating the directory for the version of the release</div> +<div class="content"> +<pre>$ svn mkdir https://dist.apache.org/repos/dist/release/incubator/tamaya/[versio] <b class="conum">(1)</b></pre> +</div> +</div> +<div class="colist arabic"> +<ol> +<li> +<p>Replace <em>version</em> by the version number of the release.</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>Now move all distribution artifacts from the dev section to the release +section.</p> +</div> +<div class="listingblock"> +<div class="title">Moving the source distribution to the release section with SVN</div> +<div class="content"> +<pre>$ svn mv \ + https://dist.apache.org/repos/dist/dev/incubator/tamaya/[version]/[project] \ <b class="conum">(1)</b> <b class="conum">(2)</b> + https://dist.apache.org/repos/dist/release/incubator/tamaya/[version]/[project]</pre> +</div> +</div> +<div class="colist arabic"> +<ol> +<li> +<p>Replace <em>version</em> by the version number of the release.</p> +</li> +<li> +<p>Replace <em>project</em> by the name of the project.</p> +</li> +</ol> +</div> +<div class="paragraph"> +<p>To be sure that everything wents well, perform a checkout of the SVN +repository for the release section and check if everything is there.</p> +</div> +<div class="listingblock"> +<div class="content"> +<pre>$ svn checkout https://dist.apache.org/repos/dist/release/incubator/tamaya +$ cd tamaya +$ ls -Rlah</pre> +</div> </div> </div> </div> </div> <div class="sect1"> -<h2 id="_announce_the_new_version">7. Announce the new version</h2> +<h2 id="_updating_the_website_and_announcing_the_release">5. Updating the website and announcing the release</h2> <div class="sectionbody"> <div class="paragraph"> -<p>Announce the new version on @TamayaConf and other social media channels. -Also drop a short mail on the mailing list.</p> +<p>Coordindate on the developers mailinglist the update of the website +for the new version and the announcement of the new version.</p> </div> </div> </div></p> @@ -526,7 +1115,7 @@ Also drop a short mail on the mailing list.</p> <div class="container"> <p class="muted credit">© 2014-<span>2017</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a> - at <span>2017-06-06</span> | + at <span>2017-09-01</span> | <a href="https://twitter.com/tamayaconf" class="twitter-follow-button" data-show-count="false">Follow @TamayaConf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/f4ba51a5/sitemap.xml ---------------------------------------------------------------------- diff --git a/sitemap.xml b/sitemap.xml index 5c1dc0d..c3bdc4b 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"> <url> + <loc>https://tamaya.incubator.apache.org/release-guide.html</loc> + <lastmod>2017-09-01</lastmod> + </url><url> <loc>https://tamaya.incubator.apache.org/apidocs/index.html</loc> <lastmod>2017-06-06</lastmod> </url><url> @@ -139,9 +142,6 @@ <loc>https://tamaya.incubator.apache.org/history.html</loc> <lastmod>2017-06-06</lastmod> </url><url> - <loc>https://tamaya.incubator.apache.org/release-guide.html</loc> - <lastmod>2017-06-06</lastmod> - </url><url> <loc>https://tamaya.incubator.apache.org/start.html</loc> <lastmod>2017-06-06</lastmod> </url><url> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-site/blob/f4ba51a5/start.html ---------------------------------------------------------------------- diff --git a/start.html b/start.html index cf4f06d..5bc2e2d 100644 --- a/start.html +++ b/start.html @@ -238,7 +238,7 @@ or in a clustered Docker environment in production, it stays the same!</p> <div class="container"> <p class="muted credit">© 2014-<span>2017</span> Apache Software Foundation | Mixed with <a href="http://getbootstrap.com/">Bootstrap v3.1.1</a> | Baked with <a href="http://jbake.org">JBake <span>v2.5.1</span></a> - at <span>2017-06-06</span> | + at <span>2017-09-01</span> | <a href="https://twitter.com/tamayaconf" class="twitter-follow-button" data-show-count="false">Follow @TamayaConf</a><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>
