Versions Compared

Key

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

f

Table of Contents

Info

It is useful to go through this document fully before getting started with the release.

Expect that the whole release process could take 10+ hours and span a few days.

...

If the validation failed on closing the the repo, please verify what makes it failed. E.g. it may fail at missing asc signature file because some other plugin overrides the original file right after the built-in gpg plugin signed the file. In that case, please add the following code after that plugin (e.g. scala-maven-plugin in pinot-spark-connector module overrides the javadoc jar, the related asc file is missing for that jar):

Code Block
$ diff --git a/pinot-connectors/pinot-spark-connector/pom.xml b/pinot-connectors/pinot-spark-connector/pom.xml
index 515e6c6bc..4a31b95ed 100644
--- a/pinot-connectors/pinot-spark-connector/pom.xml
+++ b/pinot-connectors/pinot-spark-connector/pom.xml
@@ -183,6 +183,27 @@
     </plugins>
                    ... // This is the  </javacArgs>
                         </configuration>
                     </plugin> // This is the previous plugin that overrides the original file which was already signed.
+                    <plugin>
+                        <!-- GPG signing -->
+                        <groupId>org.apache.maven.plugins</groupId>
+ // Add this plugin to sign after the file is updated.
             <artifactId>maven-gpg-plugin</artifactId> // Add this plugin to sign after the file  <artifactId>maven-gpg-plugin</artifactId>
is updated.
+                        <version>1.6</version>
+                        <executions>
+                            <execution>
+                                <id>sign-artifacts</id>
+                                <phase>verify</phase> // Put the phase to be the same as the last step of the previous plugin, so that the changed file will be signed.
+                                <goals>
+                                    <goal>sign</goal>
+                                </goals>
+                                <configuration>
+                                    <excludes>
+                                        <exclude>**/*.asc</exclude> // Skip signing the signature file again.
+                                        <exclude>*.asc</exclude>
+                                    </excludes>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
                </plugins>


  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
    
    # 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  staff  176867304 Mar 16 01:01 apache-pinot-incubating-0.3.0-bin.tar.gz
    -rw-r--r--  1 xiangfu  staff        833 Mar 16 01:01 apache-pinot-incubating-0.3.0-bin.tar.gz.asc
    -rw-r--r--  1 xiangfu  staff        128 Mar 16 01:01 apache-pinot-incubating-0.3.0-bin.tar.gz.sha512
    -rw-r--r--  1 xiangfu  staff   44435410 Mar 16 01:01 apache-pinot-incubating-0.3.0-src.tar.gz
    -rw-r--r--  1 xiangfu  staff        833 Mar 16 01:01 apache-pinot-incubating-0.3.0-src.tar.gz.asc
    -rw-r--r--  1 xiangfu  staff        128 Mar 16 01:01 apache-pinot-incubating-0.3.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
    $ cp apache-pinot-incubating-$VERSION-*.tar.gz* /pat/to/pinot-dev-dist/apache-pinot-incubating-$VERSION-rc$RC


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

...