blob: 83e693bd50bbc4b59ac30739a72db9d2a452a577 [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://xmlns.jcp.org/jsp/jstl/core"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:tc="http://myfaces.apache.org/tobago/component"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<tc:section label="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 Releases" link="http://infra.apache.org/maven-releases.html"
image="bi-box-arrow-up-right"/>.
<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="bi-box-arrow-up-right"/>
and the <tc:link label="Apache site" link="https://www.apache.org/dist/myfaces/KEYS"
image="bi-box-arrow-up-right"/> before a release.
The SVN is read-only in general but the KEYS file can be committed.
Change the <tc:link label="KEYS" link="https://dist.apache.org/repos/dist/release/myfaces/KEYS"
image="bi-box-arrow-up-right"/> file as it will be copied to the Apache site.
</li>
<li>Ensure that all open bugs and issues in
<tc:link label="Jira"
link="https://issues.apache.org/jira/issues/"
image="bi-box-arrow-up-right">
<f:param name="jql" value="project = TOBAGO AND fixVersion = #{apiController.releases[0].version}"/>
</tc: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="bi-info-lg">
<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="bi-x-lg" tip="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>"/>
<demo-highlight>Subject: ${subject}
${content}
</demo-highlight>
<tc:separator/>
<tc:button
label="Create email"
defaultCommand="true"
link="mailto:MyFaces Development &lt;dev@myfaces.apache.org>"
image="bi-box-arrow-up-right">
<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:
<demo-highlight 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
</demo-highlight>
</li>
<li>Check version info in these files manually:
<demo-highlight>package-info.java</demo-highlight>
<demo-highlight>package.json</demo-highlight>
</li>
<li>check with test-scenarios-locally.sh
</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:
<demo-highlight language="bash">$ mvn release:prepare -Pall-modules</demo-highlight>
</li>
<li>Check out a fresh copy of the svn tag:
<demo-highlight language="bash">cd ..
svn co https://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago-&lt;version>
cd tobago-&lt;version>
</demo-highlight>
</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):
<demo-highlight 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
</demo-highlight>
</li>
</ul>
</tc:section>
<tc:section label="Building the Release (Tobago 2.0.9 and higher)">
<ul>
<li>Set next version in:
<demo-highlight>package.json
package-lock.json</demo-highlight>
and commit: "chore(release): prepare"
</li>
<li>Prepare the release with:
<demo-highlight language="bash">$ mvn release:prepare</demo-highlight>
The release-plugin make use of the
<tc:link label="maven-gpg-plugin" link="https://maven.apache.org/plugins/maven-gpg-plugin/"
image="bi-box-arrow-up-right"/>.
</li>
<li>Make sure "apache.snapshots.https" and "apache.releases.https" servers are configured in settings.xml.
Have a look at <tc:link label="Publishing Maven Releases"
link="https://infra.apache.org/publishing-maven-artifacts.html"
image="bi-box-arrow-up-right"/> for more information.
Then perform the release with:
<demo-highlight language="bash">$ mvn release:perform</demo-highlight>
</li>
<li>Set next SNAPSHOT version in:
<demo-highlight>package.json
package-lock.json</demo-highlight>
and commit: "chore(release): set next SNAPSHOT version"
</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="bi-box-arrow-up-right"/> 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="bi-info-lg">
<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="bi-x-lg" tip="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>"/>
<demo-highlight>Subject: ${subject}
${content}</demo-highlight>
<tc:separator/>
<tc:button
label="Create email"
defaultCommand="true"
link="mailto:MyFaces Development &lt;dev@myfaces.apache.org>"
image="bi-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="bi-box-arrow-up-right"/> 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="bi-box-arrow-up-right"/> 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="bi-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="bi-box-arrow-up-right"/>.
</li>
<li>Update the release and staging version on tobago-vm.apache.org
</li>
<li>Update the site
<ul>
<li>Updating the release and version information in the APT files of trunk, e. g.:
<demo-highlight language="bash">tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java</demo-highlight>
</li>
<li>Updating Tag Library Documentation (TLD)
<ul>
<li>generate in myfaces-tobago folder with: <demo-highlight language="bash">mvn clean package -Pgenerate-assembly</demo-highlight></li>
<li>Copy from 'myfaces-tobago/tobago-core/target/tlddoc' to 'myfaces-homepage/tobago/doc/{tobago-version}/tld'</li>
<li>Commit and push ("docs: TLD docs for Tobago release {tobago-version}")</li>
</ul>
</li>
<li>Updating 'tobago.md'.:
<demo-highlight language="bash">myfaces-homepage/tobago.md</demo-highlight>
</li>
</ul>
</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="bi-download"/>).
Older releases are automatic available in the <tc:link label=" archive"
link="http://archive.apache.org/dist/myfaces/"
image="bi-box-arrow-up-right"/>.
</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="bi-info-lg">
<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="bi-x-lg" tip="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"/>
<demo-highlight>Subject: ${subject}
${content}</demo-highlight>
<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="bi-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="bi-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>