blob: d0d6e822c677377c5a15dd9485b8e8c14a374bce [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* 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.
-->
<ui:composition template="/main.xhtml"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://java.sun.com/jsf/facelets">
<tc:section label="Release Checklist (Developer Info)">
<tc:section label="Step by Step">
Checklist of tasks to perform for each release. For general information about Apache releases you may also consult
<tc:link label="Publishing Maven Artifacts" link="http://www.apache.org/dev/publishing-maven-artifacts.html"
image="fa-external-link"/>.
<tc:section label="Preparation">
<ul>
<li>You need to add your GPG keys in <tc:link label="Subversion"
link="https://svn.apache.org/repos/asf/myfaces/keys/KEYS"
image="fa-external-link"/>
and the <tc:link label="Apache site" link="https://www.apache.org/dist/myfaces/KEYS"
image="fa-external-link"/> before a release.
</li>
<li>Ensure that all open bugs and issues in
<tc:link label="Jira"
link="https://issues.apache.org/jira/issues/?jql=project%20%3D%20TOBAGO%20AND%20fixVersion%20%3D%20#{apiController.releases[0].version}"
image="fa-external-link"/> have been either fixed
or moved to an other release version.
</li>
<li>Ensure that all examples are working with the release candidate.
</li>
<li>Check the scheduled version number against "semantic versioning".
</li>
<li>
<tc:link label="Post a note" omit="true" image="fa-info">
<tc:operation name="show" for="preparation-email"/>
</tc:link>
and ask for problems with the release candidate.
<tc:popup markup="large" collapsedMode="hidden" id="preparation-email">
<tc:box label="Preparation email">
<f:facet name="bar">
<tc:button image="fa-close" omit="true">
<tc:operation name="hide" for="preparation-email"/>
</tc:button>
</f:facet>
<i>Replace the variable part &lt;sender-name></i>.
<tc:separator/>
<c:set var="subject" value="[Tobago] Preparation for the #{apiController.releases[0].version} release"/>
<c:set var="content"
value="Hi, folks,
&#x0a;
&#x0a;we plan to build version #{apiController.releases[0].version} of Tobago soon.
&#x0a;
&#x0a;If you know any blocking problems with the current SNAPSHOT, give me a hint.
&#x0a;
&#x0a;Regards,
&#x0a;&lt;sender-name>"/>
<pre><code>Subject: ${subject}
${content}
</code></pre>
<tc:separator/>
<tc:button
label="Create email"
defaultCommand="true"
link="mailto:MyFaces Development &lt;dev@myfaces.apache.org>"
image="fa-external-link">
<f:param name="subject" value="${subject}"/>
<f:param name="body" value="${content}"/>
</tc:button>
</tc:box>
</tc:popup>
</li>
<li>Install (or unpack) a jdk 1.4 on your computer (only for Tobago 1.0.x).
</li>
<li>Please switch to a jdk depending of the version to build:
</li>
<li>for Tobago 1.0.x:
<ul>
<li>use jdk 1.5 or 1.6 for build</li>
<li>use jdk 1.7 for deployment</li>
</ul>
</li>
<li>for Tobago 1.5.x use jdk 1.7.
</li>
<li>for Tobago 2.x and higher use jdk 1.8 or higher.
</li>
<li>Perform basic checks on an unmodified checkout for all modules:
<pre><code class="language-bash"># for Tobago 1.0.x
$ mvn checkstyle:check rat:check -Pall-modules
# for Tobago 1.5.x and higher
$ mvn clean install -Pall-modules &amp;&amp; mvn checkstyle:check apache-rat:check animal-sniffer:check -Pall-modules
# for Tobago 2.0.9 and higher
$ mvn clean install &amp;&amp; mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check
# for Tobago 3.0.0 and higher
$ mvn clean install -Pall-modules &amp;&amp; mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check -Pall-modules
# for Tobago 4.2.0 and higher
$ mvn clean install &amp;&amp; mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check
</code></pre>
</li>
<li>Check version info in this file manually:
<pre><code
class="language-bash">$ tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/package-info.java</code></pre>
</li>
</ul>
</tc:section>
<tc:section label="Building the Release (Tobago 1.0.x to 2.0.8)">
<tc:badge value="Todo:" markup="warning"/> Migrate this docs to use git!
<ul>
<li>Prepare the release with:
<pre><code class="language-bash">$ mvn release:prepare -Pall-modules</code></pre>
</li>
<li>Check out a fresh copy of the svn tag:
<pre><code class="language-bash">cd ..
svn co https://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago-&lt;version>
cd tobago-&lt;version>
</code></pre>
</li>
<li>Deploy the fresh copy to the Nexus repository with the apache-release profile (we are not using release:perform here, because of some different options):
<pre><code class="language-bash"># for Tobago 1.0.x
# "install" with Java 1.6 and Maven 2
$ mvn install -Papache-release,jdk14retro,generate-assembly --no-plugin-updates -Dnon-default-modules -Djava14.home=\${java14.jre}
# "deploy" with Java 1.7 and Maven 3 (hotfix: also comment out the maven-apt-plugin stuff)
$ mvn deploy -Papache-release,generate-assembly --no-plugin-updates -Dnon-default-modules
# for Tobago 1.5.x to 2.0.8
$ mvn deploy -Papache-release,generate-assembly --no-plugin-updates -Dnon-default-modules
</code></pre>
</li>
</ul>
</tc:section>
<tc:section label="Building the Release (Tobago 2.0.9 and higher)">
<ul>
<li>Prepare and perform the release with:
<pre><code class="language-bash">$ mvn release:prepare
$ mvn release:perform
</code></pre>
</li>
<li>Make public available:
<pre><code class="language-bash">$ git push
</code></pre>
</li>
</ul>
</tc:section>
<tc:section label="Staging repository">
<ul>
<li><i>Close</i> the repository on the <tc:link label="Nexus" link="https://repository.apache.org/"
image="fa-external-link"/> instance for staging (you will receive a mail with the staging location).
</li>
<li>Update the staging and snapshot version on tobago-vm.apache.org
</li>
</ul>
</tc:section>
<tc:section label="Voting">
<ul>
<li>Propose a
<tc:link label="vote on the dev list" omit="true" image="fa-info">
<tc:operation name="show" for="vote-email"/>
</tc:link> with the staging location.
<tc:popup markup="large" collapsedMode="hidden" id="vote-email">
<tc:box label="Voting email">
<f:facet name="bar">
<tc:button image="fa-close" omit="true">
<tc:operation name="hide" for="vote-email"/>
</tc:button>
</f:facet>
<i>Replace the variable part &lt;sender-name>, &lt;insert-list>, &lt;use-one-of>, &lt;a>, &lt;b>or, &lt;c>, &lt;id-from-nexus></i>.
<tc:separator/>
<c:set var="subject" value="[VOTE] Release Tobago #{apiController.releases[0].version}"/>
<c:set var="content"
value="Hello,
&#x0a;
&#x0a;We would like to release Tobago #{apiController.releases[0].version}.
&#x0a;
&#x0a;Major changes since last release are:
&#x0a;
&#x0a;&lt;insert-list>
&#x0a;
&#x0a;&lt;use-one-of>
&#x0a;&lt;a> This is a MAJOR release and may contain incompatible API changes.
&#x0a;&lt;b> This is a MINOR release with new functionality in a backwards-compatible manner.
&#x0a;&lt;c> This is a PATCH release with backwards-compatible bug fixes.
&#x0a;
&#x0a;For a detail list please consult the release notes at:
&#x0a;
&#x0a;https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&amp;version=#{apiController.releases[0].jira}
&#x0a;
&#x0a;The version is available at the staging repository (Nexus) at:
&#x0a;
&#x0a;https://repository.apache.org/content/repositories/orgapachemyfaces-&lt;id-from-nexus>/
&#x0a;
&#x0a;
&#x0a; TODO: insert Link and SHA-1 of the sources
&#x0a;
&#x0a;
&#x0a;Please vote now! (The vote is open for 72h.)
&#x0a;
&#x0a;[ ] +1
&#x0a;[ ] +0
&#x0a;[ ] -1
&#x0a;
&#x0a;Regards,
&#x0a;&lt;sender-name>"/>
<pre><code>Subject: ${subject}
${content}</code></pre>
<tc:separator/>
<tc:button
label="Create email"
defaultCommand="true"
link="mailto:MyFaces Development &lt;dev@myfaces.apache.org>"
image="fa-pencil">
<f:param name="subject" value="${subject}"/>
<f:param name="body" value="${content}"/>
</tc:button>
</tc:box>
</tc:popup>
</li>
<li>For a positive result wait at least 72 hours.
</li>
<li>Once a vote is successful, post the result to the dev list.
</li>
</ul>
</tc:section>
<tc:section label="Publishing">
<ul>
<li><i>Release</i> the version in <tc:link label="Jira" link="https://issues.apache.org/jira/"
image="fa-external-link"/> and close all resolved issues for the release.
</li>
<li><i>Release</i> the staging repository on the <tc:link label="Nexus" link="https://repository.apache.org/"
image="fa-external-link"/> instance.
</li>
<li>Copy the download artifacts from the repository to the site (see script
<tc:link label="release-artifacts.sh" link="./release-artifacts.sh" image="fa-download"/>).
</li>
<li>Add the release version and date to the <tc:link label="Apache Committee Report Helper"
link="https://reporter.apache.org/addrelease.html?myfaces"
image="fa-external-link"/>.
</li>
<li>Update the release and staging version on tobago-vm.apache.org
</li>
<li>Building the site
<ul>
<li>Updating the release and version information in the APT files of trunk, e. g.:
<!--todo this has changed!-->
<pre><code class="language-bash">tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java
src/site/apt/index.apt
src/site/resources/doap_tobago.rdf</code></pre>
</li>
<li>
<pre><code class="language-bash">$ TOBAGO_SITE=/Volumes/tobago-site
$ cd $TOBAGO_SITE
$ git clone https://github.com/apache/myfaces-tobago tobago-master
$ svn co https://svn.apache.org/repos/asf/myfaces/site/publish/tobago tobago-publish
$ cd tobago-master
$ export MAVEN_OPTS="-Xmx1500m \${MAVEN_OPTS}"
$ mvn clean package -Pattach-source
$ mvn site:site
$ mvn site:stage -DstagingDirectory=$TOBAGO_SITE/tobago-publish</code></pre>
</li>
</ul>
</li>
<li>Call "reformat code" on all *.html file in $TOBAGO_SITE/tobago-publish in the IDE
(the generated code has the main content in only one single line).
</li>
<li>Update the site after the distribution is on the Apache mirrors available.
</li>
<li>Unpack and commit the API Docs of the release with the update.sh (or update-1.5.sh) script in
/Volumes/tobago-site/tobago-publish.
</li>
<li>Remove old download artifacts from the site (see script
<tc:link label="drop-artifacts.sh" link="./drop-artifacts.sh" image="fa-download"/>).
Older releases are automatic available in the <tc:link label=" archive"
link="http://archive.apache.org/dist/myfaces/"
image="fa-external-link"/>.
</li>
<li>Remove old snapshots in the maven snapshot repository. This is done automatically, it is only needed, when
there are dead development ends, e. g. last alpha or beta version like 3.0.0-beta-2-SNAPSHOT which
will no longer developed.
</li>
<li>
<tc:link label="Create and send announcement" omit="true" image="fa-info">
<tc:operation name="show" for="announcement-email"/>
</tc:link>.
<tc:popup markup="large" collapsedMode="hidden" id="announcement-email">
<tc:box label="Announcement email">
<f:facet name="bar">
<tc:button image="fa-close" omit="true">
<tc:operation name="hide" for="announcement-email"/>
</tc:button>
</f:facet>
<i>Replace the variable parts &lt;edit-me></i>.
<tc:separator/>
<c:set var="subject" value="[ANNOUNCE] Apache Tobago #{apiController.releases[0].version} released"/>
<c:set var="content"
value="The Apache MyFaces team is pleased to announce the release of Apache
&#x0a;Tobago &lt;version>.
&#x0a;
&#x0a;Apache Tobago is a component library for JavaServer Faces (JSF) that
&#x0a;allows to write web-applications without the need of coding HTML, CSS
&#x0a;and JavaScript
&#x0a;
&#x0a;Main new features
&#x0a;-----------------
&#x0a;
&#x0a;&lt;list of main new features here or remove this section>
&#x0a;
&#x0a;Changes
&#x0a;-------
&#x0a;
&#x0a;Please check the release notes at
&#x0a;http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&amp;version=#{apiController.releases[0].jira}
&#x0a;for a full list of the changes in this version.
&#x0a;
&#x0a;Known limitations and bugs
&#x0a;--------------------------
&#x0a;
&#x0a;&lt;add main limitations and known bugs here or remove this section>
&#x0a;
&#x0a;For more information about Apache Tobago, please visit
&#x0a;http://myfaces.apache.org/tobago/.
&#x0a;
&#x0a;Have fun,
&#x0a;-The MyFaces team"/>
<pre><code>Subject: ${subject}
${content}</code></pre>
<tc:separator/>
<p>
For all versions send to MyFaces Discussion list. Only for major versions send to Apache Announces list.
</p>
<tc:button
label="Create email for any version"
defaultCommand="true"
link="mailto:MyFaces Discussion &lt;users@myfaces.apache.org>"
image="fa-pencil">
<f:param name="subject" value="${subject}"/>
<f:param name="body" value="${content}"/>
</tc:button>
<tc:button
label="Create email for major version"
defaultCommand="true"
link="mailto:MyFaces Announces &lt;announce@apache.org>"
image="fa-pencil">
<f:param name="subject" value="${subject}"/>
<f:param name="body" value="${content}"/>
</tc:button>
</tc:box>
</tc:popup>
</li>
</ul>
</tc:section>
</tc:section>
</tc:section>
</ui:composition>