...
- 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
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
Edit CHANGELOG.txt in you favorite editor and add the closed issues for this release. Info can be exported from jira.
Go to: https://issues.apache.org/jira/browse/EMPIREDB/
In the versions due section go to the version you want to release
Click on release notes
Configure release notes to text
Copy the notes to our CHANGELOG.txt
Prepare the release
Make sure your code is up to date, builds, is available in your snapshot repository and has no local changes
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. |
Creating a new RC
Update the changelog file
Edit CHANGELOG.txt in you favorite editor and add the closed issues for this release. Info can be exported from jira.
Go to: https://issues.apache.org/jira/browse/EMPIREDB/
In the versions due section go to the version you want to release
Click on release notes
Configure release notes to text
Copy the notes to our CHANGELOG.txt
Prepare the release
Make sure your code is up to date, builds, is available in your snapshot repository and has no local changes
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 |
---|
>mvn clean install
...
>mvn clean release:clean
...
>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 |
Code Block |
>mvn7 clean install ... >mvn7 clean release:clean ... >mvn7 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 -db-parent) empire-db-parent-2.0.5 ... |
INFO: If during this prepare you get some subversion related errors, try to do an "svn update" and calling "mvn release:prepare" again. This will then continue the release preparation from where it stopped. You might have to do this multiple times!
If anything goes wrong during the release you can do a rollback:
Code Block |
---|
>mvn7 release:rollback
|
Also run a svn diff/revert to make sure your working copy is clean
Perform the release
This step will upload the artifacts the the staging repository
Code Block |
---|
>mvn7 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"
Follow the steps as described on http://maven.apache.org/developers/release/releasing.html (Close the staging repository)
Create Distribution checksums
The distribution files are now located in target/checkout/empire-db-dist
In order to create the checksums use:
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/apache-empire-db-2.0.5-rc3
...
>cd apache-empire-db-2.0.5-rc3/empire-db-dist/
>mvn7 clean install -Papache-release
>./checksums.sh
...
All Done. Files available in ./target
|
For Windows you might want to use the "File Checksum Integrity Verifier" (fciv).
https://www.microsoft.com/en-us/download/details.aspx?id=11533
like e.g:
...
: : 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
...
|
INFO: If during this prepare you get some subversion related errors, try to do an "svn update" and calling "mvn release:prepare" again. This will then continue the release preparation from where it stopped. You might have to do this multiple times!
If anything goes wrong during the release you can do a rollback:
Code Block |
---|
>mvn release:rollback
|
Also run a svn diff/revert to make sure your working copy is clean
Perform the release
This step will upload the artifacts the the staging repository
Code Block |
---|
>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"
Follow the steps as described on http://maven.apache.org/developers/release/releasing.html (Close the staging repository)
Create Distribution checksums
The distribution files are now located in target/checkout/empire-db-dist
In order to create the checksums use:
Code Block |
---|
>cd target/checkout/empire-db-dist (we want to have the same artifacts in the dist as in the repo) > SHATool -H %target%\apache-empire-db-%1.pom
>
> SHATool -H %target%\apache-empire-db-%1.pom
> SHATool -H %target%\apache-empire-db-%1-dist.tar.gz
> SHATool -H %target%\apache-empire-db-%1-dist.zip
...
All Done. Files available in ./target
|
Upload the Distribution
Finally upload the generated files + rat report to the distribution directory using svn.
...
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...