Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. Set environment variables for version & release candidate number.

    Code Block
    languagebash
    VERSION=0.1.0
    RC=0
    


  2. Download the release candidate tarbells and open the directory for the corresponding release

    candidate
    # Download all files within a release candidate

    candidate (e.g.

    https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-0.1.0-rc0)

    Code Block
    languagebash
    mkdir pinot-dev-list
    cd pinot-dev-list
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-src.tar.gz
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-src.tar.gz.asc
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-src.tar.gz.sha512
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-bin.tar.gz
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-bin.tar.gz.asc
    wget https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-${VERSION}-rc${RC}/apache-pinot-incubating-$VERSION-bin.tar.gz.sha512



  3. Verify bundle name, signature & SHA512 hash
    1. Verify if the bundle contains "incubating" in name (e.g. apache-pinot-incubating-x.x.x-src.tar.gz)
    2. Import public keys from Pinot release managers (need to do once)


      $

      Code Block
      languagebash
      wget https://dist.apache.org/repos/dist/release/incubator/pinot/KEYS
      
      $
      gpg --import KEYS

    1. Verify the signature


      $

      Code Block
      languagebash
      gpg --verify apache-pinot-incubating-
      $VERSION
      ${VERSION}-bin.tar.gz.asc
      
      $
      gpg --verify apache-pinot-incubating-
      $VERSION
      ${VERSION}-src.tar.gz.asc
      
      # Expected output
      gpg: assuming signed data in 'apache-pinot-incubating-x.x.x-bin.tar.gz'
      gpg: Signature made Mon Feb 11 13:23:40 2019 PST
      gpg: using RSA key FD534854D542FD474278B85344BA03AD164D961B
      gpg: Good signature from "Seunghyun Lee <snlee@apache.org>" [ultimate]

    2. Verify hashes

      Code Block
      languagebash
      # Compare the output with *.tar.gz.sha512 file
      
      $
      shasum -a 512 apache-pinot-incubating-
      $VERSION
      ${VERSION}-bin.tar.gz
      
      $
      cat apache-pinot-incubating-${VERSION}-bin.tar.gz.sha512
      
      shasum -a 512 apache-pinot-incubating-
      $VERSION
      ${VERSION}-src.tar.gz
      cat apache-pinot-incubating-${VERSION}-src.tar.gz.sha512

  4. Open a directory for the corresponding release candidate and untar the tarbell


    $

    Code Block
    languagebash
    cd apache-pinot-incubating-
    $VERSION-rc$RC
    ${VERSION}-rc${RC} 
    
    $
    tar -xzvf apache-pinot-incubating-
    $VERSION
    ${VERSION}-src.tar.gz

    $
    
    tar -xzvf apache-pinot-incubating-
    $VERSION
    ${VERSION}-bin.tar.gz

  5. Verify git commit hash & tag 
    1. Checking if git commit hash provided in voting mail matches with the commit hash from the actual tag & checking if the source release matches with the git tag


      $

      Code Block
      languagebash
      git clone -b release-
      $VERSION-rc$RC
      ${VERSION}-rc${RC} --single-branch --depth 1 https://github.com/apache/incubator-pinot.git pinot-git-src  
      
      $
      cd pinot-git-src

      $ git log
      
      
      
      # Check git commit hash given here against the one given in the voting mail

      $
      
      git log
      
      
      cd ..

      $
      
      diff -r apache-pinot-incubating-
      $VERSION
      ${VERSION}-src pinot-git-src

      
      
      # Expected output is to only include lines starting with "Only in pinot-git-src..."

      
      Only in pinot-git-src: .codecov_bash

      
      Only in pinot-git-src: .codecov.yml

      
      ...


  6. Verify DISCLAIMER, LICENSE, NOTICE files are present in the extracted bundle.

  7. Verify if the source distribution can compile

    Code Block
    languagebash
    # Build Pinot (This will run license check, compilation, and tests)
    $ mvn clean install -Pbin-dist
    
    # Run Quick Demo
    $ cd pinot-distribution/target/apache-pinot-incubating-
    $VERSION
    ${VERSION}-bin
    $ bin/quick-start-offline.sh
    
    # At this point, open a web browser and go to http://localhost:9000/query and try to run some queries

  8. Verify if binary distribution are working well with the Quick Demo

    Code Block
    languagebash
    # Run Quick Demo
    $ cd apache-pinot-incubating-
    $VERSION
    ${VERSION}-bin/apache-pinot-incubating-
    $VERSION
    ${VERSION}-bin
    $ bin/quick-start-offline.sh
    
    # At this point, open a web browser and go to http://localhost:9000/query and try to run some queries

Checklist

  1. Verify if the bundle contains "incubating" in name
  2. Verify signature, hash
  3. Verify if the released source matches with the provided git tag & hash
  4. Verify if DISCLAIMER, LICENSE, NOTICE files are present
  5. Check if the source distribution can compile (Do not skip the tests)
  6. Run quick demo from both source and binary distributions

...