...
- 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
Although Empire-db is compatible with Java 6 we are ruilding Releases using JDK 7 in order to avoid certificate issues.
Java 8 or later have not been tested and approved.
The build process has been performed using Maven 3.3.9.
If Java 8 or later is installed on the machine, possibly create a mvn7 shell script and add it to your PATH in order to be able to use Java 7 to build the release.
/usr/bin/mvn7
Code Block |
---|
#!/bin/sh
JAVA_HOME="/usr/lib/jvm/java7"
mvn $@
|
test the script by running this command:
Code Block |
---|
>mvn7 --version
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T17:41:47+01:00)
Maven home: D:\DevTools\Maven\bin\..
Java version: 1.7.0_71, vendor: Oracle Corporation
|
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 |
---|
>mvn7>mvn clean install ... >mvn7>mvn clean release:clean ... >mvn7>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 |
---|
>mvn7>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 |
---|
>mvn7>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/ >mvn7 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
...
- 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.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/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"
Update the Empire-db website
...
Maybe send the release to some other sites as well (dzone) / do a blog post about it...