...
- you have created your GPG keys. For more information, please refer to Making GPG Keys and http://www.apache.org/dev/release-signing.html
- you have a GPG client installed and on your shell's path. See http://www.gnupg.org/
you have a Subversion 1.5+ client installed and on your shell's path. See http://subversion.tigris.org/- you have a GIT client installed. See https://git-scm.com/download/win
- you have the latest Java 1.6.x JDK installed and on your shell's path. See http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
- you have set the environment variable MAVEN_OPTS=-Xmx512m
- you are using Maven 3.2.x. See http://maven.apache.org/
Make sure maven
...
pom is setup correctly
Please review the maven release process here:
Publishing Maven Releases to Maven Central Repository - Apache Infrastructure
https://infra.apache.org/publishing-maven-artifacts.html
The following versions of JDK and Maven should be used:
JDK: Java Version 1.8.0_202
Maven: Apache Maven 3.3.9 or later
Currently we probably can only release using JDK 7 as there are certificate issues contacting the repository using JDK 6 (and JDK6 is not supported any more). So apply everything with jdk7 instead
Download the latest JDK 6 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
Create a mvn6 shell script and add it to your PATH. This script makes sure you use Java 6 to build the release.
Use /Library/Java/JavaVirtualMachines/xxx/Contents/Home as JAVA_HOME for mac
/usr/bin/mvn6
Code Block |
---|
#!/bin/sh
JAVA_HOME="/usr/lib/jvm/java-1.6.0-sun"
mvn $@
|
test the script by running this command:
Code Block |
---|
>mvn6 --version
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e; 2014-06-17T15:51:42+02:00)
Maven home: /usr/local/apache-maven
Java version: 1.6.0_45, vendor: Sun Microsystems Inc.
Java home: /home/francisdb/Applications/jdk1.6.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-24-generic", arch: "amd64", family: "unix"
|
Make sure that the Java version is 1.6.x!
Creating a new RC
Update the changelog file
...
Info |
---|
You will be asked about the release versions. Make sure you enter a correct tag: apache-empire-db-[version]-rc[nr]. Once the release vote passes we can then copy this -rcX tag to the final version tag. |
Code Block |
---|
>mvn6>mvn clean install ... >mvn6>mvn clean release:clean ... >mvn6>mvn release:prepare -Papache-release ... [INFO] Checking dependencies and plugins for snapshots ... What is the release version for "Apache Empire-db Parent"? (org.apache.empire-db:empire-db-parent) 2.0.5: : What is SCM release tag or label for "Apache Empire-db Parent"? (org.apache.empire-db:empire-db-parent) empire-db-parent-2.0.5: : apache-empire-db-2.0.5-rc3 What is the new development version for "Apache Empire-db Parent"? (org.apache.empire-db:empire-db-parent) 2.0.6-SNAPSHOT: : [INFO] Transforming 'Apache Empire-db Parent'... [INFO] Updating empire-db to 2.0.5 ... |
...
If anything goes wrong during the release you can do a rollback:
Code Block |
---|
>mvn6>mvn release:rollback |
Also run a svn diff/revert to make sure your working copy is clean
...
This step will upload the artifacts the the staging repository
Code Block |
---|
>mvn6>mvn release:perform |
Close the staging repository
- Go to: https://repository.apache.org and
- log in
- Select "Staging repositories"
- Find the newly created repository and select "Close"
://repository.apache.org and log in
Follow the steps as described on http://maven.apache.org/developers/release/releasing.html (Close the staging repository)
Upload the distribution
Create Distribution checksums
The distribution files are now located in target/checkout/empire-db-dist
In order to create the checksums use:TODO we might want to switch to https://dist.apache.org/repos/dist/dev/<TLP name>/
as explained here: http://www.apache.org/dev/release#upload-ci
Code Block |
---|
>cd target/checkout/empire-db-dist (we want to have the same artifacts in the dist as in the repo)
>./checksums.sh
...
All Done. Files available in ./target
|
OR (if the previous failed/is not possible any more)
this might not work, not tested, probably creates new artifacts instead of using existing ones
Code Block |
---|
>svn checkout https://svn.apache.org/repos/asf/empire-db/tags/ the dist as in the repo) > SHATool -H %target%\apache-empire-db-2.0.5-rc3 ... >cd %1.pom > > SHATool -H %target%\apache-empire-db-2.0.5-rc3/%1.pom > SHATool -H %target%\apache-empire-db-%1-dist/ >mvn6 clean install -Papache-release >./checksums.sh.tar.gz > SHATool -H %target%\apache-empire-db-%1-dist.zip ... All Done. Files available in ./target |
Upload the Distribution
Finally upload Now upload the generated files + rat report to your apache personal directory.
...
the distribution directory using svn.
...
...
as explained here: http://www
Now remove the .pom on the remote machine (and clean up old files)
...
...
Initiate a vote
Docs here: http://www.apache.org/dev/release#approving-a-release
...
Make sure you provide the correct paths!
Now wait for the vote to succeed.
...
Unsuccessful vote: roll back changes on trunk
...
Successful vote: Promoting the RC as release
Copy RC tag to release tag
...
tag to release tag
Just use your prefered subversion tool to copy the rc tag to the final release tag
apache-empire-db-2.4.4-rc1 -> apache-empire-db-2.4.4
Code Block |
---|
git show apache-empire-db-2. |
...
4. |
...
4-rc1 # copy the commit checksum, in this case 83c8fb2f7ed658aa788ccb49b3d3d4484c107a99 git tag -a apache-empire-db-2. |
...
Code Block |
---|
svn copy https://svn.apache.org/repos/asf/empire-db/tags/4.4 83c8fb2f7ed658aa788ccb49b3d3d4484c107a99 -m "copy apache-empire-db-2.4.04-rc2 https://svn.apache.org/repos/asf/empire-db/tags/rc1 -> apache-empire-db-2.4.0 4" |
Promote the nexus staging files
...
- svn checkout https://dist.apache.org/repos/dist/release/empire-db/ empire-db-dist-release
- Create a subdirectory with the version number (i.e. 2.0.5)
- Copy all distribution files from your apache home directory to that directory (.zip, .tar.gz, .asc, .md5, .sha)
scp francisdb@people
scp francisdb@people.apache.org:~/public_html/empire-db/apache-empire-db-* . - remove old releases:
www.apache.org/dist
should contain only the latest release
http://www.apache.org:~/public_html/empire-db/apache-empire-db-* . - commit to the subversion repo
- dev/release.html#when-to-archive
- commit to the subversion repo
- Wait before files become available on the mirrors
Release to Maven from the staging repository
- Go to: https://repository.apache.org and
- log in
- Select "Staging repositories"
- Find the repository and select "Release"Wait (one day) before files become available on the mirrors
Update the Empire-db website
...
- Check out or update the Empire-db website source files from
svn checkout https://svn.apache.org/repos/asf/empire-db/site - Update the doap_Empire-db.rdf file, add new version
- Edit Pages with html editor (I am using Microsoft Expression Web)
- Open page downloads/latest.htm and copy section with previous release files to downloads/previous.htm.
- Make sure the links to previous versions point tot the archive
- In downloads/latest.htm replace all reference references to the old version number with new version number.
- Update news.html
- do a svn delete on javadocs/empire-db
- commit
- recreate the empire-db folder
- fetch the new javadoc jar from http://repo1.maven.org/maven2/org/apache/empire-db/empire-db/x.x.x/empire-db-x.x.x-javadoc.jar
- extract into the javadocs/empire-db folder
- svn add the empire-db folder
- Commit all changes to svn repo.
- Wait some time for changes to become available on the mirrors.
...
The Apache Empire-db team is pleased to announce the release of Apache Empire-db version xxx.
Apache Empire-db is a lightweight data access and persistence component for relational databases based on JDBC. http://empire-db.apache.org/Main improvements listed below:
[add description and list of changes]
Download: http://empire-db.apache.org/downloads/latest.htm
Thank you for your interest in Apache Empire-db!
The Apache Empire-db Team.
Maybe send the release to some other sites as well (dzone) / do a blog post about it...