Releasing Hibernate Search

 

Requirements

 

  • JDK 7
  • Maven 3.2.3
  • Maven configured to use the JBoss repositories, with permissions to upload. Make sure your settings.xml is configured accordingly.

 

Release process

 

To prepare and release a new version of Hibernate Search follow these steps (executed against the branch you intend to release):

 

Prepare

 

  • Verify the project status
    • Make sure there are no outstanding issues in JIRA
    • Verify the tests and artifacts:
      > mvn clean install -Pdocbook,dist,perf -s settings-example.xml
    • Check the distribution package as built by Maven (distribution/target/hibernate-search-<version>-dist). Especially check the jar files in the subdirectories:
      • optional
      • required
      • provided

                They should contain the appropriate dependencies, without duplicates. The creation of these directories is driven by the assembly plugin (distribution/src/main/assembly/dist.xml) which is very specific and

                might break with the inclusion of new dependencies. The root directory of the distribution should contain the hibernate-search-<version>.jar and hibernate-search-infinispan-<version>.jar. You can get a list of the

                included jars by for example running:  find distribution/target/hibernate-search-<version>-dist -name "*.jar" | awk 'BEGIN { FS = "/" } ; {print $8 "\t" $7}'  | sort

 

Release

 

  • Release the version on JIRA
  • Update the changelog.txt in project root from JIRA's release notes
  • Verify readme.txt :
    • is containing up to date information
    • contained links are not broken
    • current date and version number at the header of the readme.txt
  • Commit any outstanding changes
  • Tag and build the release using the maven release plugin. During release:prepare you will have to specify the tag name and release version.
    > mvn -B release:clean release:prepare release:perform -Pdocbook,dist,perf -Dtag=X -DreleaseVersion=Y -DdevelopmentVersion=Z
    > git push upstream HEAD
    > git push upstream  <release-version>
    Note: It is important to activate ALL module profiles manually in release:perform. Otherwise the non activated module POMs will not get transformed.
  • Log in to Nexus and close the temporary staging repository. See more details about using the staging repository here.
  • Test the release in the staging repository. If there is a problem, drop the staging repo, fix the problem and re-deploy. If everything is ok, promote the staging repo to the releases repository.
  • If it's a final release, create maintenance branches for the previous version.
    • mvn versions:set -DnewVersion=A.B.C-SNAPSHOT
    • git add, commit, push upstream the new branch.

 

Publish

 

    • Upload the distribution packages to SourceForge. You need to be member of the Hibernate project team of Sourceforge to do that. See Sourceforge instructions: Release Files for Download.
      • Copy the changelog.txt (in target/checkout/distribution/target/hibernate-search-<version>-dist)
      • Copy the readme.txt (in target/checkout/distribution/target/hibernate-search-<version>-dist)
      • Copy the zip distribution (in target/checkout/distribution/target)
      • Copy the tar.gz distribution (in target/checkout/distribution/target)
      • Copy the zip containing the JBoss Modules (in target/checkout/modules/target)
    • Close all resolved JIRA issues
    • Upload the documentation to docs.jboss.org. You should be able to use rsync to get the documentation via (provided you are in the docs directory of the unpacked distribution):
      rsync -rzh --progress --delete --protocol=28 docs/ hibernate<at>filemgmt.jboss.org:/docs_htdocs/hibernate/search/<version>
    • If it is the latest stable release you should also overwrite the "stable docs" URLs:
      rsync -rzh --progress --delete --protocol=28 docs/ hibernate@filemgmt.jboss.org:/docs_htdocs/hibernate/stable/search

 

Announce

 

  • Update the community pages:
  • Blog about release on in.relation.to (Make sure to use the tag 'Hibernate Search' and 'Hibernate' for the blog entry)
  • Update hibernate.org by adding a new release file to _data/projects/validator/releases and deploying to production (you might want to delete an older release file, if you don't want it displayed anymore)
  • Send email to hibernate-dev and hibernate-announce
  • Twitter