Follow these steps for a official release.
- JDK 8
- The main HV binaries still target Java 6, but JDK 8 (>=1.8.0_20) is required for development
- Maven >= 3.0.3
- JBoss Maven repositories configured in your Maven settings.xml
- JBoss.org credentials added to your settings.xml.
- If it is your first release you will need to get access to Nexus. Contact the HV project lead.
- Before you release try the latest snapshot of Validator in Core to make sure the snapshot works in Hibernate ORM.
- Double check that distribution/pom.xml and distribution/src/main/assembly/dist.xml list and include all the right dependencies (this is especially important when dependencies changed).
- Make sure there are no outstanding issues in Jira and release the Jira version.
- Check the README.md file and update version and date.
- Get the changelog for the release from JIRA and add it to changelog.txt in the root directory.
- Commit any outstanding changes.
NOTE: To avoid interferences from previously installed artifacs you should use a clean local Maven repository in order.
NOTE: If you get a 301 error during the release:perform step, it might help to use Maven 3.0.3 instead of 3.0.4 due to this bug.
- Tag the release. You'll be prompted to specify the tag name (e.g. 4.3.1.Final), release version (e.g. 4.3.1.Final) and next working version (e.g. 4.3.2-SNAPSHOT). By specifying -DpushChanges=false, you have the chance to examine the tag before pushing it upstream:
> mvn release:prepare -Dmaven.repo.local=/path/to/local/repo
- Perform the release. This requires that your Nexus user is specified for the jboss-releases-repositoryin your Maven settings.
> mvn release:perform -Dmaven.repo.local=/path/to/local/repo > git push upstream HEAD > git push upstream <release-version>
- Distribution artifacts (zip and tar bundles as well as a extracted directory) can be found after the build under target/checkout/distribution/target.
- Release the artifacts on the JBoss Nexus repository manager. This ia a two-step process. Log into Nexus and examine your staging repository. You can either drop it in order to start over again or you can close and promote it making the artifacts available in the live repository. You can find more information in the description of the JBoss project release process. A Maven settings.xml for testing the artifacts in the staging repository can be found here.
- Transfer the released issues in JIRA to the Closed state.
NOTE: In the HTML version of the reference guide, some special characters and the section titles will show up not correctly when opening the file locally. This is a known issue, the documentation looks correct when retrieved via Apache.
- Use the script release.rb provided in the distribution bundle which automates the SourceForge and JBoss Docs upload. See README.md for the prerequisites and how to use the script. You need to execute the script from target/checkout/distribution/src/scripts. The script basically automates these two steps:
- Copy the dist packages (hibernate-validator-<version>-dist.zip and hibernate-validator-<version>-dist.tar.gz) together with README.md and changelog.txt from the unpacked bundle to SourceForge. Documentation on how to use the Sourceforge interface can be found here (there is also the possibility to use scp or rsync).
- Update the documentation on http://docs.jboss.org/hibernate/. For each minor version (e.g. 4.3, 5.0 etc.) the documentation from the latest micro version is published (e.g. 4.3.1.Final, 5.0.0.Beta1 etc.). Change into the directory of the unpacked bundle and sync the docs:
> rsync -rv --delete --protocol=28 docs/hibernate<at>filemgmt.jboss.org:/docs_htdocs/hibernate/validator/<version>
- Update wiki pages:
- Blog about the release on in.relation.to. Add the tag 'Hibernate Validator' to the post so it will also appear on the Hibernate Validator project page.
- Update hibernate.org by adding a new release file to _data/projects/validator/releases and deploying to production. Depending on which releases you want to have displayed, make sure to adjust the displayed flag of the other release files.