Set environment variables for version & release candidate number.
Code Block language bash VERSION=0.1.0 RC=0
Download the release candidate tarbells and open the directory for the corresponding release
candidate
# Download all files within a release candidatecandidate (e.g.
https://dist.apache.org/repos/dist/dev/incubator/pinot/apache-pinot-incubating-0.1.0-rc0)
Code Block language bash 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
- Verify bundle name, signature & SHA512 hash
- Verify if the bundle contains "incubating" in name (e.g. apache-pinot-incubating-x.x.x-src.tar.gz)
Import public keys from Pinot release managers (need to do once)
$
$Code Block language bash wget https://dist.apache.org/repos/dist/release/incubator/pinot/KEYS
gpg --import KEYS
Verify the signature
$
$VERSIONCode Block language bash gpg --verify apache-pinot-incubating-
$${VERSION}-bin.tar.gz.asc
$VERSIONgpg --verify apache-pinot-incubating-
${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]
Verify hashes
$Code Block language bash # Compare the output with *.tar.gz.sha512 file
$VERSIONshasum -a 512 apache-pinot-incubating-
$${VERSION}-bin.tar.gz
$VERSIONcat apache-pinot-incubating-${VERSION}-bin.tar.gz.sha512 shasum -a 512 apache-pinot-incubating-
${VERSION}-src.tar.gz cat apache-pinot-incubating-${VERSION}-src.tar.gz.sha512
Open a directory for the corresponding release candidate and untar the tarbell
$
$VERSION-rc$RCCode Block language bash cd apache-pinot-incubating-
$${VERSION}-rc${RC}
$VERSIONtar -xzvf apache-pinot-incubating-
${VERSION}-src.tar.gz
$
$VERSIONtar -xzvf apache-pinot-incubating-
${VERSION}-bin.tar.gz
- Verify git commit hash & tag
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
$
$VERSION-rc$RCCode Block language bash git clone -b release-
$${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 ..
$
$VERSIONdiff -r apache-pinot-incubating-
${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
...
- Verify DISCLAIMER, LICENSE, NOTICE files are present in the extracted bundle.
Verify if the source distribution can compile
$VERSIONCode Block language bash # 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}-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
Verify if binary distribution are working well with the Quick Demo
$VERSIONCode Block language bash # Run Quick Demo $ cd apache-pinot-incubating-
$VERSION${VERSION}-bin/apache-pinot-incubating-
${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
- Verify if the bundle contains "incubating" in name
- Verify signature, hash
- Verify if the released source matches with the provided git tag & hash
- Verify if DISCLAIMER, LICENSE, NOTICE files are present
- Check if the source distribution can compile (Do not skip the tests)
- Run quick demo from both source and binary distributions
...