Versions Compared

Key

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

...

Code Block
languagebash
$ git checkout -b release-<version> <commit-hash>
$ git push origin release-<version>

# Example
$ git checkout -b release-0.23.0-rc c90f66332161b0dea0b09d054ba9e604cea5b6da9abf0a4b105d624ec310273c2bd7f52c1f3ce12a
$ git push origin release-0.23.0-rc


Note

The update of LICENSE, NOTICE files, and the run of mvn release:prepare command,  mvn release:commit command, etc. should be done on this branch, NOT on the master.

...

Code Block
languagebash
# cd to the top level pinot directory
mvn clean -Ddependency.locations.enabled=false -DskipTests package
cd pinot-distribution/target
unzip pinot-distribution-0.23.0-SNAPSHOT-shaded.jar META-INF/NOTICE
cd ../..
head -6 NOTICE-binary > /tmp/xx
cat pinot-distribution/target/META-INF/NOTICE >> /tmp/xx
cp /tmp/xx NOTICE-binary

git checkout  -- pinot-distribution/pom.xml pom.xml# Revert the changes made temporarily

...

After this step is successfully completed, you should see two extra entries if you issue a git log command on your release branch. One will be a new tag like release-.0.23.0-rc0 and rc2 and the other is a commit to all pom.xml files changing the working release number to the next version. This second commit needs to be eventually cherry-picked to the master, we will get back to it later.

Please refer "Preparing a release" section in http://plc4x.apache.org/developers/release.html to see what actually happens with the command below - has a good explanation along with screenshots, our gitbox url for checking is https://gitbox.apache.org/repos/asf?p=incubator-pinot.git

...

Code Block
languagebash
$ mvn release:prepare
# Be sure to answer the questions as below (example):
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "Pinot"? (org.apache.pinot:pinot) 0.23.0: : 
What is SCM release tag or label for "Pinot"? (org.apache.pinot:pinot) pinot-0.23.0: : release-0.23.0-rc0
What is the new development version for "Pinot"? (org.apache.pinot:pinot) 0.23.1-SNAPSHOT: : 0.34.0-SNAPSHOT


Info

The mvn release:prepare command seems to remember if it has completed this step (not sure where the cursor is stored). So, you may want to use the option resume=false if you need to invoke it again for some reason. You will  also need to remove the commits that this command pushes, locally as well as remote in that case.

After completion of the command above , you should see two commits on your release branch that look like this (example for 0.23.0 release)

Code Block
languagebash
$ git log -n 2
commit 09efc5af1b88825cbdccf863f5ecef99eb9d85a6e41ae3356c9b6891a179ef3bd674906dcd18408a (HEAD -> release-0.23.0-rc0rc)
Author: SubbuXiang SubramaniamFu <ssubrama@linkedin<fx19880617@gmail.com>
Date:   MonSat NovMar 1114 1221:5200:2607 20192020 -08000700

    [maven-release-plugin] prepare for next development iteration

commit f8e1980c4160ac7fd2686d9edefab9ac0a825c5b9b2dc20c07dec6cf33df08c4444d996e8202c3ba (tag: release-0.23.0-rc0rc2)
Author: SubbuXiang SubramaniamFu <ssubrama@linkedin<fx19880617@gmail.com>
Date:   MonSat NovMar 1114 1220:2959:0146 20192020 -08000700

    [maven-release-plugin] prepare release release-0.23.0-rc0rc2

# The commit f8e1980c4160ac7fd2686d9edefab9ac0a825c5b9b2dc20c07dec6cf33df08c4444d996e8202c3ba is just a tag added, and the commit 09efc5af1b88825cbdccf863f5ecef99eb9d85a6e41ae3356c9b6891a179ef3bd674906dcd18408a is the modification of all the pom files to be 0.34.0-SNAPSHOT.
# You will need to cherry-pick this commit into the master branch after the release is done.


You can also verify from https://github.com/apache/incubator-pinot that a new tag has appeared, and that the commit of the pom files shows up.

...

  1. Pull up the site https://github.com/apache/incubator-pinot/releases/
  2. The new tag created during the release-preparation step above will automatically show up on the page. Click "Draft a new release" button, put "tag version" as the one you used from the previous step (e.g. release-0.23.0-rc0rc2). Change the branch field to your release branch.
  3. Fill in the release note (cut/paste)
  4. Be sure to check the "This is a pre-release" box.
  5. Publish the release.

...

  1. Create a source/binary tarballs & Staging source and binary release tarballs

    Code Block
    languagebash
    $ cd <pinot_source_code_root_path>
    
    # Check out the release candidate tag
    $ git checkout tags/release-<version>-rc<rc_num>
    
    # Check git hash for the official release
    $ git log
    
    # Create the package
    $ mvn install -DskipTests -Papache-release,bin-dist
    
    $ cd pinot-distribution/target
    $ ls -l
    ...
    -rw-r--r--  1 xiangfu  snleestaff eng 115915316176867304 Mar 2116 1401:2501 apache-pinot-incubating-0.13.0-bin.tar.gz
    -rw-r--r--  1 snlee eng 490 xiangfu  staff        833 Mar 2116 1401:2501 apache-pinot-incubating-0.13.0-bin.tar.gz.asc
    -rw-r--r--  1 snlee engxiangfu  staff        128 Mar 2116 1401:2601 apache-pinot-incubating-0.13.0-bin.tar.gz.sha512
    -rw-r--r--  1 snleexiangfu  staff  eng 3740441944435410 Mar 2116 1401:2501 apache-pinot-incubating-0.13.0-src.tar.gz
    -rw-r--r--  1 snlee eng 490xiangfu  staff        833 Mar 2116 1401:2501 apache-pinot-incubating-0.13.0-src.tar.gz.asc
    -rw-r--r--  1 snlee eng xiangfu  staff        128 Mar 2116 1401:2601 apache-pinot-incubating-0.13.0-src.tar.gz.sha512
    ...
    
    # Copy files to the pinot-dev-dist svn repo
    $ mkdir /path/to/pinot-dev-dist/apache-pinot-incubating-<version>-rc<rc_num>
    $ cp apache-pinot-incubating-0.13.0-*.tar.gz* /pat/to/pinot-dev-dist/apache-pinot-incubating-<version>-rc<rc_num>


  2. Validate the release that you built, using Validating a release candidate
  3. Commit the files to svn repository

...

  1. Update https://pinot.apache.org/download page. Example pr: https://github.com/apache/incubator-pinot-site/pull/19
  2. Update the Announcements on website
  3. Send the mail to dev@pinot, general@incubator about the release announcement (We can keep them same )
    dev@pinot https://lists.apache.org/thread.html/1b58323b12666bdd855e66cdb3cd72462ab2e86b7cba32757bdf7393@%3Cdevr24ab374eba6ebd4a8eec8620cc7b81b93052cda2948db0aa647bb8d0%40%3Cdev.pinot.apache.org%3E
    general@incubator https://lists.apache.org/thread.html/3c1778095a992f8df08bf4774c1e1aea8e0e1914bdab02a90f582ac4@%3Cgeneralra45449a572e7567f9c354b94065a0c7cdf779310dccadbfc9aad52bf%40%3Cgeneral.incubator.apache.org%3E
  4. Notify #general channel on Slack about the release. https://apache-pinot.slack.com/archives/CDRCA57FC/p1585354697007900

Update master branch with the next release pom changes

...

Code Block
languagebash
$ mvn --batch-mode release:update-versions -DdevelopmentVersion=<next-version>

# example
$ mvn --batch-mode release:update-versions -DdevelopmentVersion=0.4.0-SNAPSHOT

Reference

...

  1. https://cwiki.apache.org/confluence/display/GOBBLIN/Release+Process

...