...
- 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
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
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
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
...
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.]-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 ... |
Code Block |
>mvn6 clean install ... >mvn6 clean release:clean ... >mvn6 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 developmentrelease version for "Apache Empire-db Parent"? (org.apache.empire-db:empire-db-parent) 2.0.6-SNAPSHOT5: : [INFO] Transforming 'What is SCM release tag or label for "Apache Empire-db Parent'... [INFO] Updating empire-db to "? (org.apache.empire-db:empire-db-parent) empire-db-parent-2.0.5: : apache-empire-db-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 |
---|
>mvn6 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 |
---|
>mvn6 release:perform
|
Close the staging repository
Go to: https://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
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
-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 |
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/
>mvn6 clean install -Papache-release
>./checksums.sh
...
All Done. Files available in ./target
|
Now upload the generated files + rat report to your apache personal directory.
Code Block |
---|
>cd target/
>scp * people.apache.org:~/public_html/empire-db
|
Now remove the .pom on the remote machine (and clean up old files)
...
Upload the Distribution
Finally upload the generated files + rat report to the distribution directory using svn.
https://dist.apache.org/repos/dist/dev/empire-db
as explained here: http://www.apache.org/dev/release#upload-ci
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
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-* . - remove old releases: http://www.apache.org/dev/release.html#when-to-archive
- 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 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.
...
Maybe send the release to some other sites as well (dzone) / do a blog post about it...