Versions Compared

Key

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

...

Clone Pinot code base

...

Check out staging and release distributions

You need to check out Apache staging & release distribution directories for Pinot.

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

# Example
$ git checkout -b release-0.3.0-rc 9abf0a4b105d624ec310273c2bd7f52c1f3ce12a
$ git push origin release-0.3.0-rc

Run the test with sampling OFF, with the following changes (do not check in)

co https://dist.apache.org/repos/dist/release/incubator/pinot pinot-release-dist
svn co https://dist.apache.org/repos/dist/dev/incubator/pinot pinot-dev-dist


Info

Final PMC approved release will be placed in  https://dist.apache.org/repos/dist/release/incubator/pinot. Do NOT upload anything here until voting from both dev@pinot and general@incubator pass.

Release candidates will be in https://dist.apache.org/repos/dist/dev/incubator/pinot. This link will be used for voting process.

Ensure access to Apache repository manager

You need to ensure that you have the access to Apache Repository Manager (Nexus). Try to log in with Apache user name and password.

Clone Pinot code base

Clone the latest pinot code base in your local machine. Create a branch for your release from the point at which you wish to cut a release. his should be a commit hash that has been tested and verified in reasonable settings (e.g  Pinot software has been tested to run in production with various use cases at a particular commit hash). For example:

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

# Example
$ git checkout -b release-0.3.0-rc 9abf0a4b105d624ec310273c2bd7f52c1f3ce12a
$ git push origin release-0.3.0-rc


Run the test with sampling OFF, with the following changes (do not check in)

Code Block
languagebash
--- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
+++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
@@ -297,10 +297,6 @@ public abstract class BaseClusterIntegrationTestSet extends BaseClusterIntegrati
     int maxNumQueriesToSkipInQueryFile = getMaxNumQueriesToSkipInQueryFile();
     
Code Block
languagebash
--- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
+++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/BaseClusterIntegrationTestSet.java
@@ -297,10 +297,6 @@ public abstract class BaseClusterIntegrationTestSet extends BaseClusterIntegrati
     int maxNumQueriesToSkipInQueryFile = getMaxNumQueriesToSkipInQueryFile();
     try (BufferedReader reader = new BufferedReader(new FileReader(queryFile))) {
       while (true) {
-        int numQueriesSkipped = RANDOM.nextInt(maxNumQueriesToSkipInQueryFile);
-        for (int i = 0; i < numQueriesSkipped; i++) {
-          reader.readLine();
-        }
 
         String queryString = reader.readLine();
         // Reach end of file.
@@ -335,10 +331,6 @@ public abstract class BaseClusterIntegrationTestSet extends BaseClusterIntegrati
     try (BufferedReader reader = new BufferedReader(new FileReader(queryFile))) {
       while (true) {
 -        int numQueriesSkipped = RANDOM.nextInt(maxNumQueriesToSkipInQueryFile);
-        for (int i = 0; i < numQueriesSkipped; i++) {
-          reader.readLine();
-        }
   queryId++;
-
         String queryString = reader.readLine();
          }

Run the test, and make sure there are no failures (this can take 5-6 hours)

Code Block
languagebash
mvn clean test
// Reach end of file.
@@ -335,10 +331,6 @@ public abstract class BaseClusterIntegrationTestSet extends BaseClusterIntegrati
     try (BufferedReader reader = new BufferedReader(new FileReader(queryFile))) {
       while (true) {
         int numQueriesSkipped = RANDOM.nextInt(maxNumQueriesToSkipInQueryFile);
-        for (int i = 0; i < numQueriesSkipped; i++) {
-          reader.readLine();
-          queryId++;
-        }

Run the test, and make sure there are no failures (this can take 5-6 hours)

Code Block
languagebash
mvn clean test


Note

The update of LICENSE, NOTICE files, and the run of mvn release:prepare command

Note

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

...

Here is a command you can use to get all the check-ins since the last release


Code Block
languagebashbash
git log 2a3860229^..git log 2a3860229^.. -- pinot-api -- pinot-azure-filesystem -- pinot-broker -- pinot-common -- pinot-connectors -- pinot-controller -- pinot-core -- pinot-hadoopapi -- pinot-hadoopazure-filesystem -- pinot-minionbroker -- pinot-orccommon -- pinot-parquetconnectors -- pinot-servercontroller -- pinot-tools -- pinot-transport
# Assuming 2a3860229 was the commit hash in the master where the previous release was branched off
# Each argument following -- is a directory under pinot source tree (note that we have excluded the 'docs' directory

Once you have the commits, you are ready to come up with good material for release notes.

Draft the release notes in a text file (in markdown syntax) and keep it ready. You will need it in a later step.

Check out staging and release distributions

You need to check out Apache staging & release distribution directories for Pinot.

Code Block
languagebash
svn co https://dist.apache.org/repos/dist/release/incubator/pinot pinot-release-dist
svn co https://dist.apache.org/repos/dist/dev/incubator/pinot pinot-dev-dist
Info

Final PMC approved release will be placed in  https://dist.apache.org/repos/dist/release/incubator/pinot. Do NOT upload anything here until voting from both dev@pinot and general@incubator pass.

Release candidates will be in https://dist.apache.org/repos/dist/dev/incubator/pinot. This link will be used for voting process.

Ensure access to Apache repository manager

core -- pinot-hadoop -- pinot-hadoop-filesystem -- pinot-minion -- pinot-orc -- pinot-parquet -- pinot-server -- pinot-tools -- pinot-transport
# Assuming 2a3860229 was the commit hash in the master where the previous release was branched off
# Each argument following -- is a directory under pinot source tree (note that we have excluded the 'docs' directory

Once you have the commits, you are ready to come up with good material for release notes.

Draft the release notes in a text file (in markdown syntax) and keep it ready. You will need it in a later stepYou need to ensure that you have the access to Apache Repository Manager (Nexus). Try to log in with Apache user name and password.

Updating LICENSE-binary file

...