Versions Compared

Key

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

...

  1. Prepare a release branch

    Code Block
    languagebash
    $ git checkout -b release-<version>-rc<rc_num>
    $ git push origin release-<version>-rc<rc_num>
    
    # Example
    $ git checkout -b release-0.1.0-rc0
    $ git push origin release-0.1.0-rc0


  2. Prepare the release (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) . Before entering this command, make sure that you have permissions to push to the remote git branch without entering password or passphrase. This command invokes git push at the end, and will fail if you don't have permissions to push to the remote tree.

    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.2.0: : 
    What is SCM release tag or label for "Pinot"? (org.apache.pinot:pinot) pinot-0.2.0: : release-0.2.0-rc0
    What is the new development version for "Pinot"? (org.apache.pinot:pinot) 0.2.1-SNAPSHOT: : 0.3.0-SNAPSHOT
    
    


  3. Prepare the release note. Step 2 will generate the new tag and it will automatically show up on https://github.com/apache/incubator-pinot/releases
    1. Click "Draft a new release" button, put "tag version" as the one you used from the previous step (e.g. release-0.1.0-rc0).
    2. Fill in the release note and publish the release. NOTE: you need to check "This is a pre-release" box in order not to violate Apache terms. 

  4. Perform the release (publishing artifacts to "staging repository")

    Code Block
    languagebash
    $ mvn release:perform

    After run this, log in to Nexus (https://repository.apache.org) and select Stating Staging Repositories and find the repository with the name "orgapachepinot-{number}". Select that and click the "Close" button. This will trigger to Nexus to do some checks on artifacts (checksum, signatures..etc).  Check https://repository.apache.org/content/repositories/orgapachepinot-{number} shows correctly.

  5. 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
    ...
    -rw-r--r-- 1 snlee eng 115915316 Mar 21 14:25 apache-pinot-incubating-0.1.0-bin.tar.gz
    -rw-r--r-- 1 snlee eng 490 Mar 21 14:25 apache-pinot-incubating-0.1.0-bin.tar.gz.asc
    -rw-r--r-- 1 snlee eng 128 Mar 21 14:26 apache-pinot-incubating-0.1.0-bin.tar.gz.sha512
    -rw-r--r-- 1 snlee eng 37404419 Mar 21 14:25 apache-pinot-incubating-0.1.0-src.tar.gz
    -rw-r--r-- 1 snlee eng 490 Mar 21 14:25 apache-pinot-incubating-0.1.0-src.tar.gz.asc
    -rw-r--r-- 1 snlee eng 128 Mar 21 14:26 apache-pinot-incubating-0.1.0-src.tar.gz.sha512
    ...
    
    # Copy files to the pinot-dev-dist
    $ mkdir /path/to/pinot-dev-dist/apache-pinot-incubating-<version>-rc<rc_num>
    $ cp apache-pinot-incubating-0.1.0-SNAPSHOT-*.tar.gz* /pat/to/pinot-dev-dist/apache-pinot-incubating-<version>-rc<rc_num>
    
    # Commit the files to staging svn repository
    $ cd /path/to/pinot-dev-dist
    $ svn add apache-pinot-incubating-<version>-rc<rc_num>
    $ svn commit -m "Update apache-pinot-incubating-<version>-rc<rc_num>"

    After the above step, check https://dist.apache.org/repos/dist/dev/incubator/pinot/ to see if the files are uploaded correctly. requires -src/bin.tar.gz, tar.gz.asc, tar.gz.sha512 files.

...