Outlines the steps used to create a new Trafodion release. You have to be a Trafodion PMC member to create a release. |
If you haven’t done so already, then you need to create a PGP key so that you can sign the release. Please refer to:http://www.apache.org/dev/openpgp.html#generate-key.
Please remember to store your private key in a secure place.
gpg --gen-key (verify that sha1 is avoided (last on list - see above web site) gpg -k (shows public key) gpg -K (shows private key) |
Upload your public key to a public key server. We recommend using https://pgp.mit.edu/.
gpg --send-keys <keyID> --keyserver pgp.mit.edu |
Create a revocation certification using the instructions at: http://www.apache.org/dev/openpgp.html==revocation-certs.
Please remember to store it in a secure place separate from your PGP keys.
gpg --output revoke-<keyID>.asc --armor --gen-revoke <keyID> |
Do the following:
svn co https://dist.apache.org/repos/dist/release/trafodion traf_release cd traf_release gpg --list-sigs <keyID> >> KEYS gpg --armor --export <keyID> >> KEYS svn commit -m "added new public key to KEYS file" Now do the same steps above for the dev repository too : https://dist.apache.org/repos/dist/dev/trafodion |
Link into the "Web of Trust" by having someone else sign your key.
You can sign other people's keys, but you must verify their identity in person and make sure the key fingerprint matches. See ASF guide for more info.
You need to ensure that:
Prior to releasing, send a message to the community indicating that a new release is imminent and that a new branch will be created to build the artifacts.
git branch release2.0 apache/master git push apache release2.0:release2.0 |
Make sure that check-in automated testing is set up for new release.
After the new release branch is created, send another message to the community indicating that the branch is available and the deliveries will be monitored. Allow deliveries on the main branch to continue.
It is now time to change the release number on the master branch to the next release number, to avoid confusion with the release branch.
To change release number, edit $TRAF_HOME/sqenvcom.sh and modify the environment variables TRAFODION_VER_MAJOR or TRAFODION_VER_MINOR to the next version in the main master branch.
From this time on, until the release is finished, use the release branch to update the project web site. Changes to the documentation and web site made on the master branch won't be visible during this time. The "Documentation" page will still show the new release as "in development".
Find someone to pull together release notes to summarize content of the release. A starting point is the automated JIRA release notes. Go the project overview, select the release, and use the "Release Notes" button to get a link to the list.
For the RC votes, a link to JIRA is okay, but meanwhile, the markdown page to be posted on the website(http://trafodion.apache.org/release-notes.html) should be prepared and be posted to the site by the time the release announcement is due.
Updates to the release download page also need to be prepared. http://trafodion.apache.org/download.html
Guidelines are available: http://www.apache.org/dev/release-download-pages
Verify that all required changes have been delivered.
Trafodion uses git as its repository. When a new version is created, mark the repository with the tag to make sure it source tar can be recreated.
# Move to the directory where you want to install the Trafodion source code.cd mysource# Clone the Trafodion source code |
Ensure that you have a remote pointing to the Apache repository. USERNAME is your apache username.
git fetch apache |
git tag -a x.x.xrc1 apache/<releaseX.X> git show x.x.xrc1 git push apache tag x.x.xrc1 git checkout x.x.xrc1 cd core/sqf source sqenvr.sh cd ../.. make package-src git describe --long --tags --dirty --always Save the output of the string from the above command for later |
Once completed, a new source tar file exist in the distribution directory.
The convenience binary artifacts should be built from the source tar file, not from a git workspace. Best to create the build in a nice clean environment per the build instructions.
Note : Ensure the windows driver executables are built and uploaded as described in the section ""Make/update windows drivers" in Build Source. This way the "make package" step below will package those in.
However, when creating these official binaries, we do want some version information built into the binaries.In the git workspace checked out to the tag, run this describe command:
The output should be a one-line string. Set the "PV_BUILDID" environment variable to that value and "PV_BRANCH" to the release branch name.
tar xvf apache-trafodion-x.x.x-src.tar.gz cd apache-trafodion-x.x.x cd core/sqf ; source sqenvr.sh ; cd ../.. export PV_BUILDID=x.x.xrc2-0-g12345ab export PV_BRANCH=releaseX.X make package-all sqvers # check version info |
Assumption
You’ve already created the signing key and registered it at the https://pgp.mit.edu/ repository.
gpg --armor --output apache-trafodion-x.x.x-src.tar.gz.asc --detach-sig apache-trafodion-x.x.x-src.tar.gz gpg --verify apache-trafodion-x.x.x-src.tar.gz.asc sha512sum apache-trafodion-x.x.x-src.tar.gz > apache-trafodion-x.x.x-src.tar.gz.sha512 |
For the current release each of the tarfiles in the distribution directory, including the tarfile under the directories RH*, create checksums and signature files using same methods as above. Do not include the tar files for *-tests.tgz and *-regress.tgz as part of the distributed files.The list of files we need to distribute include :
$TRAF_HOME/distribution: apache-trafodion_clients-x.x.x-RH6-x86_64.tar.gz apache-trafodion_pyinstaller-x.x.x.tar.gz apache-trafodion_server-x.x.x-RH6-x86_64.tar.gz traf_ambari-x.x.x-1.noarch.rpm $TRAF_HOME/distribution/RH6 : apache-trafodion_server-x.x.x-1.x86_64.rpm |
Build and test the source tar file using the Build Source instructions. You should perform this test on the following environments:
Test build on a fresh VM.
Test build using the src tar file created above
Compare the code from the source tar file with the tagged version to make sure they match.
mkdir artifacts mv trafodion/distribution/* artifacts/ # save artifacts cd trafodion ; git clean -xdf # clean any built files git checkout x.x.xrc1 # be sure we are on tagged version cd .. tar zxf artifacts/apache-trafodion-x.x.x-src.tar.gz diff -r trafodion apache-trafodion-x.x.x |
Compare the two versions; for example, by using diff, or a GUI tool such as BCompare and the "Folder Compare Report" feature.
The source package may have a generated LICENSE file and exclude git folders, etc per the .gitattributes file. |
Verify checksums and signatures using the Verify Signature instructions below. Ensure that the high-level directory contains valid version of:
LICENSENOTICERAT_READMEREADMEOnce all the artifacts have been created and tested, then it’s time to stage them. Upload the artifacts to the https://dist.apache.org/repos/dist/dev/trafodion directory.
Make sure svn exists. (It can be downloaded using yum.)
which svn svn --version # (version 1.6.11 works) |
Checkout source code. This creates a directory called trafodion.
svn co https://dist.apache.org/repos/dist/dev/trafodion |
cd trafodionmkdir trafodion-x.x.x-RCxsvn add *
A (bin) apache-trafodion-2.3.0-src.tar.gz
A apache-trafodion-2.3.0-src.tar.gz.asc
A apache-trafodion-2.3.0-src.tar.gz.sha512
A (bin) apache-trafodion_clients-2.3.0-RH6-x86_64.tar.gz
A apache-trafodion_clients-2.3.0-RH6-x86_64.tar.gz.asc
A apache-trafodion_clients-2.3.0-RH6-x86_64.tar.gz.sha512
A (bin) apache-trafodion_pyinstaller-2.3.0.tar.gz
A apache-trafodion_pyinstaller-2.3.0.tar.gz.asc
A apache-trafodion_pyinstaller-2.3.0.tar.gz.sha512
A (bin) apache-trafodion_server-2.3.0-RH6-x86_64.tar.gz
A apache-trafodion_server-2.3.0-RH6-x86_64.tar.gz.asc
A apache-trafodion_server-2.3.0-RH6-x86_64.tar.gz.sha512
A RH6
A RH6/apache-trafodion_server-2.3.0-1.x86_64.rpm.asc
A (bin) RH6/apache-trafodion_server-2.3.0-1.x86_64.rpm
A RH6/apache-trafodion_server-2.3.0-1.x86_64.rpm.sha512
A (bin) traf_ambari-2.3.0-1.noarch.rpm
A traf_ambari-2.3.0-1.noarch.rpm.asc
A traf_ambari-2.3.0-1.noarch.rpm.sha512
Commit your changes.
svn status svn commit -m "message..." |
Go to https://dist.apache.org/repos/dist/dev to see if your changes were committed.
(Future Release) Also stage JDBC jar file in maven repo. http://www.apache.org/dev/publishing-maven-artifacts.html
See: https://www.apache.org/info/verification
All artifacts have been uploaded to the staging area.
Download all the artifacts from the staging area including:
apache-trafodion-x.x.x-src.tar.gz apache-trafodion-x.x.x-src.tar.gz.asc apache-trafodion-x.x.x-src.tar.gz.sha512 |
apache-trafodion-x.x.x-src.tar.gz.asc# View public key gpg apache-trafodion-x.x.x-src.tar.gz.asc # Expect gpg: Signature made Tue 03 Nov 2015 12:59:10 AM UTC using RSA key ID A44C5A05 gpg: Can't check signature: No public key # Extract public key from key ID returned above gpg --keyserver pgpkeys.mit.edu --recv-key A44C5A05 # Expect: gpg: requesting key A44C5A05 from hkp server pgpkeys.mit.edu gpg: /home/centos/.gnupg/trustdb.gpg: trustdb created gpg: key A44C5A05: public key "Jane Doe (CODE SIGNING KEY) <jdoe@apache.org>" imported # Verify signature gpg --verify apache-trafodion-x.x.x-src.tar.gz.asc # Expect: gpg: Signature made <date> using RSA key ID A44C5A05 gpg: Good signature from "Roberta Marton (CODE SIGNING KEY) <rmarton@apache.org>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. |
apache-trafodion-x.x.x-src.tar.gz.sha512sha512sum -c apache-trafodion-x.x.x-src.tar.gz.sha512 # Expect: apache-trafodion-x.x.x-src.tar.gz: OK |
Next, run rat to make sure all files have Apache copyrights. See the file RAT_README in the top level source directory for steps to download the Rat jar file and running the tool , redirecting to an output file to look at all the details.
java -jar /path/to/apacherat.jar -E .rat-excludes -d $(pwd) |
Send an email to dev@trafodion.apache.org asking for a vote from the Apache Trafodion community.
The vote will be open for 72 hours (at least). If any -1 votes returned, resolve the issue which may require the current vote to be cancelled and propose a new release candidate. At least three +1 binding votes are needed to take this to the next phase.
If problems arise which requires a new vote, resend the original VOTE email to mailto:dev@trafodion.apache.org , prepend [CANCEL] to the title and add a short explanation why the vote was cancelled.
If the vote is successful (no -1's and at least three +1's) after 72 hours, report the results of the vote:
Add the Release Notes to the web site and update the downloads page.
Files to be updated are docs/src/site/markdown. They can be previewed by generating the HTML files (mvn site) and viewing them in browser.
Submit a pull request for these changes to the master branch. Both download.md and documentation.md need new sections for the latest release. Note that this will be the first time that manuals for the next release (main branch) will be published on the site. Those documents will now appear in the "Latest (In Development)" section.
This step can be done only by a project PMC. If release manager is not an Trafodion PMC then please reach out to an existing Trafodion PMC or contact Trafodion PMC chair to complete this step.
Full version name: 2.2.0
Date of release (YYYY-MM-DD): 2017-12-19
Submit the data
Verify that the submitted data is reflected at https://reporter.apache.org/?trafodion
Performing this step keeps https://reporter.apache.org/?trafodion site updated and people using the Apache Reporter Service will be able to see the latest release data for Trafodion.
Wait 24 hour for the artifacts to be distributed to the mirrors. Go to www.apache.org/dyn/closer.lua, click on one or more of the mirror locations, click on Trafodion. Under Trafodion, you should see the release artifacts. Once the links work, commit the pull request for the web site and publish the site.
A message should be sent to the user@trafodion.apache.org, dev@trafodion.apache.org, and the announce@apache.org lists.
Title: [ANNOUNCE] Release Apache Trafodion x.x.x
Contents should include release summary and/or link to release notes as well as link to download site. The contents should avoid mentioning any specific company name, even the change was done by a specific company.