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

- You need to add your GPG keys in and the before a release. The SVN is read-only in general but the KEYS file can be committed. Change the file as it will be copied to the Apache site.
- Ensure that all open bugs and issues in have been either fixed or moved to an other release version.
- Ensure that all examples are working with the release candidate.
- Since Tobago 5: Ensure that the Skript ./test-scenarios-locally.sh runs sucessfully.
- Check the scheduled version number against "semantic versioning".
- and ask for problems with the release candidate. Replace the variable part <sender-name>. Subject: ${subject} ${content}
- 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
  - use jdk 1.7 for deployment
- for Tobago 1.5.x use jdk 1.7.
- for Tobago 2.x and higher use jdk 1.8 or higher.
- 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 # for Tobago 4.2.0 and higher $ mvn clean install && mvn checkstyle:check apache-rat:check animal-sniffer:check dependency-check:check

Migrate this docs to use 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

- Commit: "chore(release): prepare"
  - Check version info in these files manually: package.json package-lock.json package-info.java Release.java ApiController.java
- Prepare the release with: $ mvn release:prepare The release-plugin make use of the .
- Make sure "apache.snapshots.https" and "apache.releases.https" servers are configured in settings.xml. Have a look at for more information. Then perform the release with: $ mvn release:perform
- Set next SNAPSHOT version in: package.json package-lock.json and commit: "chore(release): set next SNAPSHOT version"

- Close the repository on the instance for staging (you will receive a mail with the staging location).
- Update the staging and snapshot version on tobago-vm.apache.org

- Propose a with the staging location. Replace the variable part <sender-name>, <insert-list>, <use-one-of>, <a>, <b>or, <c>, <id-from-nexus>. Subject: ${subject} ${content}
- For a positive result wait at least 72 hours.
- Once a vote is successful, post the result to the dev list.

- Release the version in and close all resolved issues for the release.
- Release and drop the staging repository on the instance.
- Copy the download artifacts from the repository to the site (see script ).
- Add the release version and date to the . Full version name is "tobago-{VERSION}".
- Update the next SNAPSHOT version on tobago-demo.apache.org
  - Checkout: https://github.com/apache/myfaces-homepage.git
  - Edit versions in tobago/tobago-vm/apache-proxy/index.html and tobago/tobago-vm/docker-compose.yml
- Update the site
  - Updating the release and version information in other branches, e. g.: tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/Release.java
  - Updating Tag Library Documentation (TLD)
    - generate in myfaces-tobago folder with: mvn clean package -Pgenerate-assembly
    - Copy from 'myfaces-tobago/tobago-core/target/tlddoc' to 'myfaces-homepage/tobago/doc/{tobago-version}/tld'
    - Commit and push ("docs: TLD docs for Tobago release {tobago-version}")
  - Updating 'tobago.md' in the MyFaces homepage project 'myfaces-homepage'.: myfaces-homepage/tobago.md
- Remove old download artifacts from the site (see script ). Older releases are automatic available in the .
- 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.
- . Replace the variable parts <edit-me>. Subject: ${subject} ${content}

  For all versions send to MyFaces Discussion list. Only for major versions send to Apache Announces list.