Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

  1. Go to: https://repository.apache.org and
  2. log in
  3. Select "Staging repositories"
  4. Find the newly created repository and select "Close"

Image Added://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.

https://dist.apache.org

...

/repos/dist/dev/empire-db

...

as explained here: http://www

Now remove the .pom on the remote machine (and clean up old files)

...

.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

...

  1. svn checkout https://dist.apache.org/repos/dist/release/empire-db/ empire-db-dist-release
  2. Create a subdirectory with the version number (i.e. 2.0.5)
  3. 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-* .
  4. remove old releases:
    www.apache.org/dist should contain only the latest release
    http://www.apache.org/dev/release.html#when-to-archive
  5. commit to the subversion repo
  6. Wait before files become available on the mirrors

Release to Maven from the staging repository

  1. Go to: https://repository.apache.org and
  2. log in
  3. Select "Staging repositories"
  4. 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...