src/main/webapp/contribute/manual-release-guide.html [44:145]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

The Apache Unomi project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as "alpha", "beta", "stable", etc.

The Unomi community treats releases with great importance. They are a public face of the project and most users interact with the project only through the releases. Releases are signed off by the entire Unomi community in a public vote.

Each release is executed by a Release Manager, who is selected among the Unomi committers. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the dev@ mailing list.

Please remember that publishing software has legal consequences. This guide complements the foundation-wide Product Release Policy and Release Distribution Policy.

Overview

Apache Unomi release guide

The release process consists of several steps:

  1. Decide to release
  2. Prepare for the release
  3. Build a release candidate
  4. Vote on the release candidate
  5. During vote process, run validation tests
  6. If necessary, fix any issues and go back to step 3.
  7. Finalize the release
  8. Promote the release

Decide to release

Deciding to release and selecting a Release Manager is the first step of the release process. This is a consensus-based decision of the entire community.

Anybody can propose a release on the dev@ mailing list, giving a solid argument and nominating a committer as the Release Manager (including themselves). There's no formal process, no vote requirements, and no timing requirements. Any objections should be resolved by consensus before starting the release.

In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.

Basically we will be following the procedure described here with a few more steps and details before and after.

Checklist to proceed to the next step

  1. Community agrees to release
  2. Community selects a Release Manager

Prepare for the release

Pre-flight checks

  1. Make sure all copyright years have been changed in NOTICE and any other file
  2. Check that all SNAPSHOT versions are correct by searching for SNAPSHOT in all XML files

GPG Key configuration

  1. Make sure to have a PGP key for your @apache.org email. if not you can create a new one locally:
    gpg --gen-key
  2. Make sure that your default GPG key is configured to use an signature with an @apache.org email. You can do this by adding the following to your ~/.gnupg/gpg.conf :
    default-key <key-uid>
    replacing <key-uid> with the key uid you want to use by default. You can get the <key-uid> using:
    gpg --list-secret-keys
    You should then check by signing a file and verifying its signature that you have the right default key:
    gpg -ab test.txt
    gpg --verify test.txt.asc test.txt
                          
    This should tell you which key was used and display the email address.
  3. Make sure your public KEY is available in this files (if not add your key to the files and commit/push):
    1. GIT https://github.com/apache/unomi/blob/master/KEYS (cherry-pick to the branches if necessary)
    2. SVN https://dist.apache.org/repos/dist/dev/unomi/KEYS
    3. SVN https://dist.apache.org/repos/dist/release/unomi/KEYS
  4. Make sure your public KEY is also available in public pgp server like https://keys.openpgp.org/. You can export your key to file with:
    gpg --export USERNAME@apache.org > USERNAME@apache.pub
    Then upload it on https://keys.openpgp.org/upload

Jira

  1. Setup new version in JIRA project
  2. Update all JIRAs, close the ones that are still not closed, review tickets that can be closed, postpone to another release tickets that are not managed now. You can use this JIRA page: Unomi JIRA releases. Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and insure they are closed using fix version: ${next.stable.version}. Ideally all tickets listed for version: ${next.stable.version} should be closed or moved to the next version in case they are not finished/started.
  3. Then you can also generate a release notes automatically using: JIRA release note, By choosing the version: ${next.stable.version}. It will be useful for linking the release notes in the voting mail. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - src/main/webapp/contribute/release-guide.html [44:145]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    The Apache Unomi project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as "alpha", "beta", "stable", etc.

    The Unomi community treats releases with great importance. They are a public face of the project and most users interact with the project only through the releases. Releases are signed off by the entire Unomi community in a public vote.

    Each release is executed by a Release Manager, who is selected among the Unomi committers. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the dev@ mailing list.

    Please remember that publishing software has legal consequences. This guide complements the foundation-wide Product Release Policy and Release Distribution Policy.

    Overview

    Apache Unomi release guide

    The release process consists of several steps:

    1. Decide to release
    2. Prepare for the release
    3. Build a release candidate
    4. Vote on the release candidate
    5. During vote process, run validation tests
    6. If necessary, fix any issues and go back to step 3.
    7. Finalize the release
    8. Promote the release

    Decide to release

    Deciding to release and selecting a Release Manager is the first step of the release process. This is a consensus-based decision of the entire community.

    Anybody can propose a release on the dev@ mailing list, giving a solid argument and nominating a committer as the Release Manager (including themselves). There's no formal process, no vote requirements, and no timing requirements. Any objections should be resolved by consensus before starting the release.

    In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.

    Basically we will be following the procedure described here with a few more steps and details before and after.

    Checklist to proceed to the next step

    1. Community agrees to release
    2. Community selects a Release Manager

    Prepare for the release

    Pre-flight checks

    1. Make sure all copyright years have been changed in NOTICE and any other file
    2. Check that all SNAPSHOT versions are correct by searching for SNAPSHOT in all XML files

    GPG Key configuration

    1. Make sure to have a PGP key for your @apache.org email. if not you can create a new one locally:
      gpg --gen-key
    2. Make sure that your default GPG key is configured to use an signature with an @apache.org email. You can do this by adding the following to your ~/.gnupg/gpg.conf :
      default-key <key-uid>
      replacing <key-uid> with the key uid you want to use by default. You can get the <key-uid> using:
      gpg --list-secret-keys
      You should then check by signing a file and verifying its signature that you have the right default key:
      gpg -ab test.txt
      gpg --verify test.txt.asc test.txt
                            
      This should tell you which key was used and display the email address.
    3. Make sure your public KEY is available in this files (if not add your key to the files and commit/push):
      1. GIT https://github.com/apache/unomi/blob/master/KEYS (cherry-pick to the branches if necessary)
      2. SVN https://dist.apache.org/repos/dist/dev/unomi/KEYS
      3. SVN https://dist.apache.org/repos/dist/release/unomi/KEYS
    4. Make sure your public KEY is also available in public pgp server like https://keys.openpgp.org/. You can export your key to file with:
      gpg --export USERNAME@apache.org > USERNAME@apache.pub
      Then upload it on https://keys.openpgp.org/upload

    Jira

    1. Setup new version in JIRA project
    2. Update all JIRAs, close the ones that are still not closed, review tickets that can be closed, postpone to another release tickets that are not managed now. You can use this JIRA page: Unomi JIRA releases. Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and insure they are closed using fix version: ${next.stable.version}. Ideally all tickets listed for version: ${next.stable.version} should be closed or moved to the next version in case they are not finished/started.
    3. Then you can also generate a release notes automatically using: JIRA release note, By choosing the version: ${next.stable.version}. It will be useful for linking the release notes in the voting mail. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -