Child pages
  • Release Process
Skip to end of metadata
Go to start of metadata

This page documents the Apache OpenNLP release process.

Step-by-step guide

  1. Elect a release manager
  2. Create a new release in JIRA. If you do not have permissions to do so just ask to be assigned privileges on the mailing list.
  3. Review the JIRA issues associated to the release.
  4. Push off all open issues to the next release; any critical or blocker issues should be resolved on mailing list. Discuss any issues that you are unsure of on the mailing list.
  5. Make sure you have your PGP key entered into https://id.apache.org/
    1. Your KEYS will then be present in: https://people.apache.org/keys/group/opennlp.asc
  6. Check if you have your PGP keys password.
  7. Checkout the apache master

  8. Execute a complete test (it takes several hours).

    mvn test -DOPENNLP_DATA_DIR=~/opennlp-test-data/ -Peval-tests

    Merge no source code changes after running the tests, or we will need to rerun it.

  9. Do a trial build with:

    mvn package -Papache-release
  10. Execute release prepare:

    mvn release:prepare
  11. Answer all questions
  12. If it finished with success, do a release perform

    mvn release:perform
  13. (this will create a X.Y.Z release tag in GIT that you can use for VOTE'ing in your VOTE email. 
  14. It will also create a staged repository at http://repository.apache.org. Check the staged repository and if all looks well, close the repository, but don't release it yet).
  15. The build results is in opennlp/target/checkout/target/
  16. Perform basic check in the release binary (signature, presence of license, issues folder, execute the CLI)
  17. Title: [VOTE] Apache OpenNLP <version> Release Candidate
     
    Hi Folks,
    
    I have posted a [Nth] release candidate for the Apache OpenNLP <version> release and it is ready for testing.
    
    The RC # distributables can be downloaded from here:
    https://repository.apache.org/content/repositories/orgapacheopennlp-<REPO_NUM>/org/apache/opennlp/opennlp-distr/<version>/
    
    The release was made from the Apache OpenNLP <version> tag at
    https://github.com/apache/opennlp/tree/opennlp-<version>
    
    To use it in a maven build set the version for opennlp-tools or opennlp-uima to <version> and add the following URL to your settings.xml file:
    https://repository.apache.org/content/repositories/orgapacheopennlp-<REPO_NUM>
     
    The release was made using the OpenNLP release process, documented on the Wiki here:
    https://cwiki.apache.org/confluence/display/OPENNLP/Release+Process
     
    The release contains quite some changes, please refer to the contained issue list for details.
    
    Please vote on releasing these packages as Apache OpenNLP <version>. The vote is
    open for at least the next 72 hours.
    
    Only votes from OpenNLP PMC are binding, but folks are welcome to check the
    release candidate and voice their approval or disapproval. The vote passes
    if at least three binding +1 votes are cast.
    
    [ ] +1 Release the packages as Apache OpenNLP <version>
    [ ] -1 Do not release the packages because...
    
    Thanks!
    <Signed Release Manager>
    P.S. Here is my +1.
  18. If VOTE passes with 3+ OpenNLP PMC votes, move onto next step. If VOTE does not pass, repeat steps 5-on until it does.
  19. Close the successful release vote
  20. Promote the nexus staging repo
  21. SNV the distribution to https://dist.apache.org/repos/dist/release/

     

    svn co https://dist.apache.org/repos/dist/release/opennlp/ dist
    # check if the KEYS file contains your key, if not, update it
    # copy opennlp/target/checkout/target/apache-opennlp* to dist/opennlp-<VERSION>
    svn commit --username <username>
  22. Update the web site: distribution, maven dependency version, documentation. Wait to merge the changes uptil the new versions apeear in the Apache download mirrors.
    1. Add a new artifactItem in the pom.xml for the new OpenNLP release. (This automatically pulls in the details and javadocs for the new version when the site is built.)
    2. Move the last version's links to the documentation to the Legal Documentation page.
    3. Update the doap_opennlp.rdf file to reflect the new version.
  23. Wait for versions to hit the mirrors (hint: keep checking http://www.apache.org/dyn/closer.cgi/opennlp until you see something).
  24. Promote the website changes.
  25. Log the new version at https://reporter.apache.org/addrelease.html?opennlp.
  26. Announce the new version on the OpenNLP Twitter.
  27. Send announcement email to announce@a.o and dev@opennlp.a.o and user@opennlp.a.o. This needs to be done from your @apache.org email address or the email will bounce from the announce list. Gmail forwarding can help here and is a snap to set up (http://gmailblog.blogspot.com/2009/07/send-mail-from-another-address-without.html). It's even easier then the instructions there as it will recognize your email address and default to Apache settings. It is important to include a description of what OpenNLP is as well as a link to the updated DOAP within the release announcement, this is so others know what OpenNLP is.

    Title: [ANNOUNCE] OpenNLP <version> released
    TO: announce@apache.org, users@opennlp.apache.org, dev@opennlp.apache.org
     
    The Apache OpenNLP team is pleased to announce the release of version <version> of Apache OpenNLP. The Apache OpenNLP library is a machine learning based toolkit for the processing of natural language text. It supports the most common NLP tasks, such as tokenization, sentence segmentation, part-of-speech tagging, named entity extraction, chunking, and parsing.
    The OpenNLP <version> binary and source distributions are available for download from our download page: http://opennlp.apache.org/cgi-bin/download.cgi
    The OpenNLP library is distributed by Maven Central as well. See the Maven Dependency page for more details: http://opennlp.apache.org/maven-dependency.html
    
    **  TODO UPDATE THIS >>
    This release introduces many new features, improvements and bug fixes. The API has been improved for a better consistency and deprecated methods were removed. Now Java 1.8 and Maven 3.3.9 are required.
    Additionally the release contains the following noteworthy changes:
    - change 1
    - change 2
    ...
    <<  TODO UPDATE THIS **
    A detailed list of the issues related to this release can be found in the release
    notes.
    For a complete list of fixed bugs and improvements please see the RELEASE_NOTES file included in the distribution.
    --The Apache OpenNLP Team