| = 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 8 |
| |
| |
| == Manual Release Preparation Steps |
| |
| * Make sure you have the latest version checked out and no local modifications |
| $> git pull --rebase |
| $> git status |
| 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 |