blob: fd5244aa3ab59c36cd3f50e9d9caf3187f6a7c7a [file] [log] [blame]
Releasing Apache OpenJPA
=========================
Licensed under Apache License 2.0 - http://www.apache.org/licenses/LICENSE-2.0
== Summary
These instructions describe how perform an official release of the Apache OpenJPA project.
== Prerequisits
* You need a valid Apache account and
* Maven installed on your box
* Java 6 or 7
* Do NOT Release with Java 8 yet!
* TODO probably we require a ~/.m2/toolchains.xml set up correctly in the future
== Manual Release Preparation Steps
* Make sure you have the latest version checked out and no local modifications
$> svn up
$> svn st
This should not show any dirty files
* Run a full build
$> mvn clean install
== Update the Release Notes
Edit openjpa-project/RELEASE-NOTES.html and add a new section for the new release.
Just remove all the bug content from the previous release.
Make sure all the ticets for the upcoming release are set to resolved
You can grab the content for the new release at
https://issues.apache.org/jira/browse/OPENJPA/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel
Just copy over the html content for the generated ReleaseNotes.
At last add a link to the RELEASE-NOTES.html of the previous release to the table on the bottom of the page.
== Performing the Release
We use maven to roll the release. Please make sure you understand how
the Apache Maven maven-release-plugin works:
http://maven.apache.org/maven-release/maven-release-plugin/
=== Running the release prepare steps
$> mvn release:prepare
Depending on your location you probably get an error for the first time.
This happens if you hit a svn mirror which is not updated quickly enough.
Simply rerun this step after a few seconds. No worries, maven will continue
exactly where it left off.
=== Validating the tag
You should now get a fresh tag in https://svn.apache.org/repos/asf/openjpa/tags/
Please verify that the tag looks good and that all pom.xml files really got updated.
=== Running the release perform steps
$> mvn release:perform
This will finally do a clean checkout from the freshly generated tag and
== Verifying the Maven Staging Repository
Login in to https://repository.apache.org/
Navigate to 'Staging Repositories' and verify the content of your release.
Then 'close' the staging and copy the URL of the staging repository
== Call a VOTE
Send the usual VOTE mail to the mailing List
== After the VOTE succeeded
Tally the VOTEs and send the result to the mailing list.
Propagate the staging repository and wait until the results appear on maven.central
== Upload the distribution binaries
Checkout the distribution area from SVN
https://dist.apache.org/repos/dist/release/openjpa
Add a new directory for the new version and upload the binaries.
You might use the following getrelease.sh script for it:
-----
#!/bin/sh
mkdir $1
cd $1
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/apache-openjpa/${1}/apache-openjpa-${1}-binary.zip
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/apache-openjpa/${1}/apache-openjpa-${1}-binary.zip.asc
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/apache-openjpa/${1}/apache-openjpa-${1}-binary.zip.md5
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/apache-openjpa/${1}/apache-openjpa-${1}-binary.zip.sha1
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/openjpa-parent/${1}/openjpa-parent-${1}-source-release.zip
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/openjpa-parent/${1}/openjpa-parent-${1}-source-release.zip.asc
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/openjpa-parent/${1}/openjpa-parent-${1}-source-release.zip.md5
curl -O https://repository.apache.org/content/groups/public/org/apache/openjpa/openjpa-parent/${1}/openjpa-parent-${1}-source-release.zip.sha1
cd ..
-----
You also need to remove any now obsolete previous version.
E.g. when releasing our release 2.4.2 we should remove 2.4.1.
Older still maintained versions remain on the dist area as long as the branch is still actively maintained.
== Upload the site for the new version
The site for OpenJPA is maintained with the [Apache CMS](http://www.apache.org/dev/cmsref.html).
The sources of the site are hosted in Subversion
-----
svn co https://svn.apache.org/repos/asf/openjpa/site/trunk openjpa-site
-----
=== Update the download page
Edit content/downloads.mdtext and add the new release.
Or for a simple maintenance release just replace the previous version with the new information.
The information on this side should match the content available in the dist area.
Please also add proper changes to content/downloads-nightly.mdtext!
=== Upload JavaDoc of the new version
Edit content/documentation.mdtext