Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note
If you are uncomfortable placing your password in clear text in the settings.xml file, you can use http://maven.apache.org/guides/mini/guide-encryption.html. This seems to work fine, at least with maven 3.6.2 (might work with earlier releases as well)

...

Prepare a Release Candidate

Before we move on to the voting, we need to prepare the release along with the below information:

...

After following the steps below, you should have all information listed above.

Prepare the release candidate

Warning
  • Do this step in the release branch.
  • This step can take about an hour for a run (since it runs all the tests).
  • This step will attempt a git push command, so make sure that you have permissions to push to the remote git branch without entering password or passphrase from the shell in which this command is run.

    It will fail if permissions are incorrect.

...

Once the voting passes, it is now officially approved by Apache and we just need to do some final steps.

Recall a Release Candidate

There could be some issues unveiled during testing and voting phase. If it happens, we need to recall the release candidate and apply patches/changes then redo from step: Prepare the Release Candidate and increase <rc_num> by 1.

There are several things to clean up:

  1. Delete git repo release draft: https://github.com/apache/incubator-pinot/releases
  2. Delete the maven artifacts. Log in to Nexus, select the staging repository (orgapachepinot-<number>) and click Drop button.
  3. Clean up tarballs from dev dist

    Code Block
    languagebash
    $ svn rm https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-<version>-rc<rc_num>
    # NOTE: You will need your apache login and password for this step.


Finalize a Release

  1. Move staging tarballs to the svn directory for official release 

    Code Block
    languagebash
    $ svn mv https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-<version>-rc<rc_num> https://dist.apache.org/repos/dist/release/incubator/pinot/apache-pinot-incubating-<version>
    # NOTE: You will need your apache login and password for this step.

    Check https://downloads.apache.org/incubator/pinot
    After several hours later, check http://www.apache.org/dyn/closer.cgi/incubator/pinot/apache-pinot-incubating-<version> to see if it shows up.
    (e.g. http://www.apache.org/dyn/closer.cgi/incubator/pinot/apache-pinot-incubating-0.3.0)

  2. Delete release branch from github repo if any

    Code Block
    languagebash
    $ git push origin --delete release-0.3.0 


  3. Update git tag for official release

    Code Block
    languagebash
    $ git checkout tags/release-<version>-rc<rc_num>
    $ git tag release-<version> -m "Apache Pinot (Incubating) <version>"
    $ git push origin release-<version>


  4. Update Release note for the official release on Github https://github.com/apache/incubator-pinot/releases

    1. No need to draft a new release, just EDIT the previously drafted release

    2. Replace tag name to release-<version> tag

    3. Uncheck the pre-release checkbox, then publish

    4. Delete all other rc drafts if there is any.
  5. Delete all RC tags from github repo

    Code Block
    languagebash
    # Clean up the rc tag to not to show on the Github release page
    $ git tag -d release-<version>-rc<rc_num>
    $ git push origin :refs/tags/release-<version>-rc<rc_num>


  6. Publish the maven artifacts. Log in to Nexus, select the staging repository (orgapachepinot-<number>) and click Release button. Several hours later, the new version should show up at https://repo.maven.apache.org/maven2/org/apache/pinot

...