Versions Compared

Key

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

Table of Contents

How to cut a new Apache Empire-db release.

...

The general incubator release guide is available here: http://incubator.apache.org/guides/releasemanagement.htmlImage Removed
but since we are out of incubation the docs are here: http://www.apache.org/dev/releaseImage Removed
The apache central maven repo release guide is available here: http://www.apache.org/dev/publishing-maven-artifacts.htmlImage Removed

The release process takes about one hour to perform, don't do this in a hurry as it is important to perform each step in the correct order!

...

Make sure your system is set up correctly and that you have the needed credentials

  • you have all Maven servers defined in your settings.xml. For more information, please refer to Committer settings. This is what mine looks like:

    Code Block
    xml
    xml
    
    <?xml version="1.0"?>
    <settings>
     <servers>
        <!-- To publish a snapshot of some part of Maven -->
        <server>
          <id>apache.snapshots.https</id>
          <username>francisdb</username>
          <password>xxx</password>
        </server>
        <!-- To publish a website of some part of Maven -->
        <server>
          <id>apache.website</id>
          <username>francisdb</username>
          <filePermissions>664</filePermissions>
          <directoryPermissions>775</directoryPermissions>
        </server>
        <!-- To stage a release of some part of Maven -->
        <server>
          <id>apache.releases.https</id>
          <username>francisdb</username>
          <password>xxx</password>
        </server>
        <!-- To stage a website of some part of Maven -->
        <server>
          <id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy -->
          <username>francisdb</username>
          <filePermissions>664</filePermissions>
          <directoryPermissions>775</directoryPermissions>
        </server>
    </servers>
    
      <profiles>
        <profile>
          <id>apache-release</id>
          <properties>
            <gpg.passphrase>xxx</gpg.passphrase>
          </properties>
        </profile>
      </profiles>
    
    </settings>
    


Make sure maven

...

pom is setup correctly

Please review the maven release process here:

Publishing Maven Releases to Maven Central Repository - Apache Infrastructure

httpsDownload the latest JDK 6 http://wwwinfra.oracleapache.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.htmlImage Removed

Create a mvn6 shell script and add it to your PATH. This script makes sure you use Java 6 to build the release.

/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 2.2.1 (r801777; 2009-08-06 20:16:01+0100)
Java version: 1.6.0_33
Java home: /usr/lib/jvm/java-1.6.0-sun-1.6.0.33/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.28-15-generic" arch: "amd64" Family: "unix"

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 laterMake 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/Image Removed
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

...

Make sure your code is up to date, builds, is available in your snapshot repository and has no local changes

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.

Info

Wiki Markup


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.orgImage Removed and log in

Follow the steps as described on http://maven.apache.org/developers/release/releasing.htmlImage Removed (Close the staging repository)

Upload the distribution

TODO we might want to switch to https://dist.apache.org/repos/dist/dev/Image Removed<TLP name>/
as explained here: http://www.apache.org/dev/release#upload-ciImage Removed

Create Distribution checksums

The distribution files are now located in target/checkout/empire-db-dist

In order to create the checksums use:

Code Block
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/ in the dist as in the repo) > SHATool -H %target%\apache-empire-db-%1.pom
> 
> SHATool -H %target%\apache-empire-db-2.0.5-rc3
...
>cd %1.pom
> SHATool -H %target%\apache-empire-db-%1-2dist.0.5-rc3/tar.gz
> SHATool -H %target%\apache-empire-db-%1-dist/
>mvn6 clean install -Papache-release
>./checksums.sh.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.apache.org/dev/release#upload-ci

Now remove the .pom on the remote machine

...

Initiate a vote

Docs here: http://www.apache.org/dev/release#approving-a-releaseImage Removed

The vote mail should look like this:

Wiki MarkupTo: dev@empire-db.apache.org
Subject: \ [VOTE\] Release Apache Empire-db 2.0.5 (rc3)

Hi,

We have just prepared a 2.0.5 release and we are now looking for approval of the PMC to publish the release.
More info on release requirements can be found here: http://www.apache.org/dev/release#approving-a-releaseImage Removed

These are the major changes from our previous 2.0.4 release:

  • xxx
  • xxx

Changelog:http https://svngit-wip-us.apache.org/viewvc/empire-db/tags/apache-repos/asf?p=empire-db-2.0.5-rc3/.git;a=blob_plain;f=CHANGELOG.txt?view=coImage RemovedSubversion ;hb=83c8fb2f7ed658aa788ccb49b3d3d4484c107a99

Git tag: https://svngit-wip-us.apache.org/repos/asf/?p=empire-db/tags/apache-empire-db-2.0.5-rc3Image Removed.git;a=tag;h=6dbaa5a7a70655805385508546f2a3bfb744b70e

Maven staging repository: https://repository.apache.org/content/repositories/orgapacheempire-db-044/Image Removed

Distribution files are located here http://people.apache.org/~francisdb/empire-db/Image Removed

Rat report for the tag is available here: http://people.apache.org/~francisdb/empire-db/rat.txtImage Removed

Vote open for 72 hours.

[ ] +1
[ ] +0
[ ] -1

...

  • Drop the staging repository in nexus
  • Update the local code
  • Use the maven versions plugin to roll back the version update

    Code Block
    
    > mvn versions:set -DnewVersion=2.0.7-SNAPSHOT -Papache-release -DgenerateBackupPoms=false
    


  • Commit the project
  • Go to the create new RC step

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.0-rc2 https://svn.apache.org/repos/asf/empire-db/tags/4-rc1 -> apache-empire-db-2.4.0
4"

Promote the nexus staging files

Log in to nexus as described above,

Go to: https://repository.apache.orgImage Removed and log in
Follow the steps as described on http://maven.apache.org/developers/release/releasing.htmlImage Removed
(go to the staging section, right click on the staged release and select release)

Set up new release in JIRA / close old one

Move the release files to the dist location

Docs here: http://www.apache.org/dev/release#upload-ciImage Removed

  1. svn checkout https://dist.apache.org/repos/dist/release/empire-db/Image Removed 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-* .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 repoWait (one day) before files become available on the mirrors
  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

...

  1. Check out or update the Empire-db website source files from
    svn checkout https://svn.apache.org/repos/asf/empire-db/siteImage Removed
  2. Update the doap_Empire-db.rdf file, add new version
  3. Edit Pages with html editor (I am using Microsoft Expression Web)
  4. Open page downloads/latest.htm and copy section with previous release files to downloads/previous.htm.
  5. Make sure the links to previous versions point tot the archive
  6. In downloads/latest.htm replace all reference references to the old version number with new version number.
  7. Update news.html
  8. so do a svn delete on javadocs/empire-db
  9. commit
  10. recreate the empire-db folder
  11. 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.jarImage Removed
  12. extract into the javadocs/empire-db folder
  13. svn add the empire-db folder
  14. Commit all changes to svn repo.
  15. Wait some time for changes to become available on the mirrors.

...

Start the mail as follows:

Wiki MarkupSubject: \ [ANNOUNCE\] Apache Empire-db xxx released

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/Image Removed

Main improvements listed below:

Wiki Markup\[add description and list of changes\]

Changelog:http https://svngit-wip-us.apache.org/viewvcrepos/asf?p=empire-db/tags/apache-empire-db-xxx/.git;a=blob_plain;f=CHANGELOG.txt?view=coImage Removed;hb=83c8fb2f7ed658aa788ccb49b3d3d4484c107a99

Download: http://empire-db.apache.org/downloads/latest.htmImage Removed

Thank you for your interest in Apache Empire-db!

The Apache Empire-db Team.

...