Project Documentation

Release Checklist (Developer Info)

Checklist of tasks to perform for each release. For general information about Apache releases you may also consult Publishing Maven Artifacts.

Preparation

  • You need to add your GPG keys in Subversion and the Apache site before a release.
  • Ensure that all open bugs and issues in Jira have been either fixed or moved to an other release version.
  • Ensure that all examples are working with the release candidate.
  • Check the scheduled version number against "semantic versioning".
  • Post a note and ask for problems with the release candidate (see Preparation template below).
  • Install (or unpack) a jdk 1.4 on your computer (only for Tobago 1.0.x).
  • Please switch to a jdk depending of the version to build:
    • for Tobago 1.0.x use jdk 1.5 or 1.6 for build and 1.7 for deployment.
    • for Tobago 1.5.x use jdk 1.7.
    • for Tobago 2.x and higher use jdk 1.8.
  • Perform basic checks on an unmodified checkout for all modules:
    # for Tobago 1.0.x
    mvn checkstyle:check rat:check -Pall-modules
    
    # for Tobago 1.5.x and higher
    mvn clean install -Pall-modules && mvn checkstyle:check apache-rat:check animal-sniffer:check -Pall-modules
    
    # for Tobago 2.0.9 and higher
    mvn clean install && mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check
    
    # for Tobago 3.0.0 and higher
    mvn clean install -Pall-modules && mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check -Pall-modules

Building the Release (Tobago 1.0.x to 2.0.8) [TODO: migrate this docs to git]

  • Prepare the release with:
    mvn release:prepare -Pall-modules
  • Check out a fresh copy of the svn tag:
    cd ..
    svn co https://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago-<version>
    cd tobago-<version>
  • 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):
    # 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

Building the Release (Tobago 2.0.9 and higher)

  • Prepare and perform the release with:
    mvn release:prepare
    mvn release:perform

Staging repository

  • Close the repository on the Nexus instance for stating (you will receive a mail with the staging location).

Voting

  • Propose a vote on the dev list with the staging location (see Vote template below).
  • For a positive result wait at least 72 hours.
  • Once a vote is successful, post the result to the dev list.

Publishing

  • Release the version in Jira and close all resolved issues for the release.
  • Release the staging repository on the Nexus instance.
  • Copy the download artifacts from the repository to the site (see script release-artifacts.sh).
  • Add the release version and date to the Apache Committee Report Helper.
  • Building the site
    • Updating the release and version information in the APT files of trunk, e. g.:
      src/site/apt/api.apt
      src/site/apt/download.apt
      src/site/apt/index.apt
      src/site/resources/doap_tobago.rdf
    • Note: The site can only be build correctly on file systems that supports to differ upper-/lower-case. This is not the default on Windows and Mac OS X machines. On Mac OS X you can mount a virtual filesystem (sparse bundle) that supports upper-/lower-case with the Disk Utility.
      cd /Volumes/tobago-site
      git clone https://github.com/apache/myfaces-tobago tobago-trunk
      svn co https://svn.apache.org/repos/asf/myfaces/site/publish/tobago tobago-publish
      cd tobago-trunk
      export MAVEN_OPTS="-Xmx1500m ${MAVEN_OPTS}"
      mvn clean package -Pattach-source
      mvn site:site
      mvn site:stage -DstagingDirectory=/Volumes/tobago-site/tobago-publish
  • Update the site after the distribution is on the Apache mirrors available.
  • Workaround for Tobago 3 and higher TLD documentation. There is a bug (TOBAGO-1654) so the TLDDOC will not be distributed. To upload it into the Maven repo follow these steps:
    VERSION=4.0.0
    git clone -b tobago-${VERSION} https://github.com/apache/myfaces-tobago tobago-${VERSION}
    cd tobago-${VERSION}/tobago-core
    mvn clean install -Papache-release
    mvn deploy:deploy-file \
      -DgroupId=org.apache.myfaces.tobago \
      -DartifactId=tobago-core \
      -Dversion=${VERSION} \
      -Dclassifier=tlddoc \
      -DgeneratePom=false \
      -DrepositoryId=apache.releases.https \
      -Durl=https://repository.apache.org/content/repositories/releases/ \
      -Dfile=target/tobago-core-${VERSION}-tlddoc.jar
  • 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.
  • Remove old download artifacts from the site (see script drop-artifacts.sh). Older releases are automatic available in the archive.
  • 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.
  • Create and send announcement (see Announcement template below).

Preparation template

Send to: mailto:MyFaces Development <dev@myfaces.apache.org>

Replace the variable parts like <version>.

Subject: [Tobago] Preparation for the <version> release


Hi, folks,

I plan to build the <version> of Tobago soon.

If you know any blocking problems with the current SNAPSHOT, give me a hint.

Regards,
<sender>

Vote template

Send to: mailto:MyFaces Development <dev@myfaces.apache.org>

Replace the variable parts like <version>.

Subject: [VOTE] Release Tobago <version>


Hello,

I would like to release Tobago <version>.

Major changes since last release are:

<insert list>

<use one of>
<a> This is a MAJOR release and may contain incompatible API changes.
<b> This is a MINOR release with new functionality in a backwards-compatible manner.
<c> This is a PATCH release with backwards-compatible bug fixes.

For a detail list please consult the release notes at:

https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&version=<version_id_from_jira>

The version is available at the staging repository (Nexus) at:

https://repository.apache.org/content/repositories/orgapachemyfaces-<id_from_nexus>/

Please vote now! (The vote is open for 72h.)

[ ] +1
[ ] +0
[ ] -1

Regards,
<sender>

Announcement template

For all versions send to: mailto:MyFaces Discussion <users@myfaces.apache.org>
Only for major versions send to: mailto:announce@apache.org

Replace the variable parts like <version>.

Subject: [ANNOUNCE] Apache Tobago <version> released


The Apache MyFaces team is pleased to announce the release of Apache
Tobago <version>.

Apache Tobago is a component library for JavaServer Faces (JSF) that
allows to write web-applications without the need of coding HTML, CSS
and JavaScript

Main new features
-----------------

<list of main new features here or remove this section>

Changes
-------

Please check the release notes at
http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version=<versionidfromjira>
for a full list of the changes in this version.

Known limitations and bugs
--------------------------

<add main limitations and known bugs here or remove this section>

For more information about Apache Tobago, please visit
http://myfaces.apache.org/tobago/.

Have fun,
-The MyFaces team