<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Making a release - Apache OpenNLP</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="color-scheme" content="dark light">
    <meta name="description" content="Apache OpenNLP  is a machine learning based toolkit for the processing of natural language text." />
    <meta name="author" content="The Apache OpenNLP Team" />
    <meta name="keywords" content="java, natural language processing, nlp, apache, open source, web site" />
    <meta name="generator" content="JBake"/>
    
    <!-- RSS Feed -->
    <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.xml" />

    <!-- Favicon -->
    <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
    <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
    <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
    <link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
    <link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
    <link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
    <link rel="icon" type="image/png" sizes="192x192"  href="/android-icon-192x192.png">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
    <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
    <link rel="manifest" href="/manifest.json">
    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
    <meta name="theme-color" content="#ffffff">

    <!-- The styles -->
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="/css/font-awesome.min.css" rel="stylesheet">
    <link href="/css/asciidoctor.css" rel="stylesheet">
    <link href="/css/prettify.css" rel="stylesheet">
    <link href="/css/custom-style.css" rel="stylesheet">
    <link href="/css/scheme-light.css" rel="stylesheet">
    <link href="/css/scheme-dark.css" rel="stylesheet">

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="/js/html5shiv.js"></script>
    <![endif]-->
</head>
<body onload="prettyPrint()">
<span class="visible-lg">
<a href="https://github.com/apache/opennlp"><img style="z-index: 9999; position: absolute; top: 0; right: 0; border: 0;" src="/img/fork-me-on-github.png" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>
</span>

<nav class="navbar navbar-default">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-items" aria-expanded="false">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/">
                <img alt="Brand" src="/img/opennlp-navbar-logo.png" class="img-responsive" width="100px" style="position: relative; top: -3px;">
            </a>
        </div>

        <div class="collapse navbar-collapse" id="navbar-items">
            <ul class="nav navbar-nav">
                <li>
                    <a href="/"><span class="glyphicon glyphicon-home"></span> Home</a>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-download-alt"></span> Download <b class="caret"></b></a>
                    <ul class="dropdown-menu">
		                <li><a href="/download.html">OpenNLP Releases</a></li>
                        <li><a href="/models.html">OpenNLP Models</a></li>
		                <li><a href="/maven-dependency.html">Maven Integration</a></li>
		                <li><a href="/gradle-dependency.html">Gradle Integration</a></li>
		            </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-flag"></span> General <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        
                        <li><a href="/news/">News</a></li>
			            <li><a href="https://blogsarchive.apache.org/#opennlp" target="_blank">Blog</a></li>
                        <li><a href="/mailing-lists.html">Mailing Lists</a></li>
                        <li><a href="https://issues.apache.org/jira/browse/OPENNLP" target="_blank">Issue tracker</a></li>
                        <li><a href="/books-tutorials-and-talks.html">Books, Tutorials and Talks</a></li>
                        <li><a href="/powered-by-opennlp.html">Powered by Apache OpenNLP</a></li>
                        
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Documentation <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/docs/">Manual and Javadocs</a></li>
                        <li><a href="/faq.html">FAQ</a></li>
                        <li><a href="https://cwiki.apache.org/OPENNLP" target="_blank">Wiki</a></li>
                    </ul>
                </li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-console"></span> Development <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/get-involved.html">Get Involved</a></li>
                        <li><a href="/source-code.html">Source Code</a></li>
                        <li><a href="/using-git.html">Using Git</a></li>
                        <li><a href="/building.html">Building</a></li>
                        <li><a href="/code-conventions.html">Code Conventions</a></li>
                        <li><a href="/release.html">Release</a></li>
                        <li><a href="/release-model.html">Release Models</a></li>
                        <li><a href="/team.html">Project Team</a></li>
                    </ul>
                </li>

            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-leaf"></span> ASF <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="https://www.apache.org/">The Apache Software Foundation</a></li>
                        <li><a href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
                        <li><a href="https://www.apache.org/security/">Security</a></li>
                        <li><a href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                    </ul>
                </li>
            </ul>
        </div><!-- /.navbar-collapse -->
    </div><!-- /.container-fluid -->
</nav>

<div class="container">
    <h1 class="title">Making a release</h1>

    <div class="sect1">
<h2 id="release_preparation">Release Preparation</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Elect a release manager.</p>
</li>
<li>
<p>Create a ticket for a new release in <a href="https://issues.apache.org/jira/browse/OPENNLP">JIRA</a>. If you do not have permission to do so just ask to be given permissions on the mailing list.</p>
</li>
<li>
<p>Review all of the <a href="https://issues.apache.org/jira/browse/OPENNLP">JIRA</a> issues associated with the release. All issues should be resolved and closed.</p>
</li>
<li>
<p>Any issues assigned to the release that are not complete should be assigned to the next release. Any critical or blocker issues should be resolved on the mailing list. Discuss any issues that you are unsure of on the mailing list.</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="steps_for_the_release_manager">Steps for the Release Manager</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The following steps need only to be performed once.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Make sure you have your PGP fingerprint added into <a href="https://id.apache.org/" class="bare">https://id.apache.org/</a></p>
</li>
<li>
<p>Make sure you have your PGP keys password.</p>
</li>
<li>
<p>Add your PGP key to the KEYS file</p>
<div class="listingblock">
<div class="content">
<pre>Examples of adding your key to this file:
 pgp -kxa &lt;your name&gt; and append it to this file.
 (pgpk -ll &lt;your name&gt; &amp;&amp; pgpk -xa &lt;your name&gt;) &gt;&gt; this file.
 (gpg --list-sigs &lt;your name&gt;
     &amp;&amp; gpg --armor --export &lt;your name&gt;) &gt;&gt; this file.</pre>
</div>
</div>
</li>
<li>
<p>In a local temp folder, svn checkout the OpenNLP artifacts and update the KEYS file</p>
</li>
<li>
<p>Note: This can only be done by a PMC member. If you are a committer acting as a release manager, ask a PMC member to add your key.</p>
<div class="listingblock">
<div class="content">
<pre>svn co https://dist.apache.org/repos/dist/release/opennlp/
svn commit -m "Added Key for &lt;name&gt;" KEYS</pre>
</div>
</div>
</li>
<li>
<p>Create a maven <code>settings.xml</code> to publish to <code>repository.apache.org</code>. An example configuration:</p>
<div class="listingblock">
<div class="content">
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd"
          xmlns="http://maven.apache.org/SETTINGS/1.1.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;
    &lt;servers&gt;
        &lt;server&gt;
            &lt;id&gt;apache.snapshots.https&lt;/id&gt;
            &lt;username&gt;your-asf-ldap&lt;/username&gt;
            &lt;password&gt;your-asf-ldap-password&lt;/password&gt;
        &lt;/server&gt;
        &lt;server&gt;
            &lt;id&gt;apache.releases.https&lt;/id&gt;
            &lt;username&gt;your-asf-ldap&lt;/username&gt;
            &lt;password&gt;your-asf-ldap-password&lt;/password&gt;
        &lt;/server&gt;
        &lt;server&gt;
            &lt;id&gt;apache.dist.https&lt;/id&gt;
            &lt;username&gt;your-asf-ldap&lt;/username&gt;
            &lt;password&gt;your-asf-ldap-password&lt;/password&gt;
        &lt;/server&gt;
    &lt;/servers&gt;
    &lt;profiles&gt;
        &lt;profile&gt;
            &lt;id&gt;apache-gpg&lt;/id&gt;
            &lt;properties&gt;
                &lt;gpg.keyname&gt;your-gpg-code-signing-key-fingerprint&lt;/gpg.keyname&gt;
            &lt;/properties&gt;
            &lt;repositories&gt;
                &lt;repository&gt;
                    &lt;id&gt;apache.dist.https&lt;/id&gt;
                    &lt;url&gt;https://dist.apache.org/repos/dist&lt;/url&gt;
                &lt;/repository&gt;
            &lt;/repositories&gt;
        &lt;/profile&gt;
    &lt;/profiles&gt;
&lt;/settings&gt;</pre>
</div>
</div>
</li>
<li>
<p>In case you are running on a headless system, it might be necessary to set the following export before starting with the release preparation.</p>
<div class="listingblock">
<div class="content">
<pre>export GPG_TTY=$(tty)</pre>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="sect1">
<h2 id="release_steps">Release Steps</h2>
<div class="sectionbody">
<div class="ulist">
<ul>
<li>
<p>Checkout the Apache OpenNLP main branch: <code>git clone <a href="mailto:git@github.com">git@github.com</a>:apache/opennlp.git</code></p>
</li>
<li>
<p>(Optional) Execute a complete test (it can take several hours): <code>mvn test -DOPENNLP_DATA_DIR=/path/to/opennlp-test-data/ -Peval-tests</code></p>
</li>
<li>
<p>Check the current results of the eval build on the ASF Jenkins CI: <a href="https://ci-builds.apache.org/job/OpenNLP/job/eval-tests/" class="bare">https://ci-builds.apache.org/job/OpenNLP/job/eval-tests/</a></p>
</li>
<li>
<p>Do a trial build: <code>mvn package -Papache-release,apache-gpg</code></p>
</li>
<li>
<p>Switch to a new branch with a format like <strong>rel-opennlp-x.y.z.</strong>.</p>
</li>
<li>
<p>Prepare the release: <code>mvn release:prepare -Papache-gpg</code> Answer the questions appropriately. The tag name format should be <strong>opennlp-x.y.z</strong>.
This command creates and pushes two new commits to the repository to reflect the version changes. It also tags the release and pushes the branch.</p>
</li>
<li>
<p>Start an eval build for the tag via <a href="https://ci-builds.apache.org/job/OpenNLP/job/eval-tests-releases/" class="bare">https://ci-builds.apache.org/job/OpenNLP/job/eval-tests-releases/</a> (build can take several hours)</p>
</li>
</ul>
</div>
<div class="sect2">
<h3 id="successful_maven_release_preparation">Successful Maven Release Preparation</h3>
<div class="sect3">
<h4 id="perform_the_release">Perform the Release</h4>
<div class="ulist">
<ul>
<li>
<p>Perform the release: <code>mvn release:perform -Papache-gpg</code></p>
</li>
<li>
<p>This creates a staged repository at <a href="https://repository.apache.org/#stagingRepositories" class="bare">https://repository.apache.org/#stagingRepositories</a></p>
</li>
<li>
<p>Check the staged repository and if all looks well, close the staging repository but do <strong>not</strong> promote or release it at this time.</p>
</li>
<li>
<p>The build results are in <code>opennlp/target/checkout/target</code>. Do not modify or delete these files.</p>
</li>
</ul>
</div>
<div class="sect4">
<h5 id="put_the_artifacts_to_distdev">Put the artifacts to dist/dev</h5>
<div class="ulist">
<ul>
<li>
<p>Next, checkout the svn dist dev space from <a href="https://dist.apache.org/repos/dist/dev/opennlp/" class="bare">https://dist.apache.org/repos/dist/dev/opennlp/</a></p>
</li>
<li>
<p>Create a new folder <code>opennlp-x.y.z</code>.</p>
</li>
<li>
<p>Add the files from <code>opennlp/target/checkout/target</code> to this folder.</p>
</li>
<li>
<p>Commit the change set to the dist area. Check that the files are present in <a href="https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z" class="bare">https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z</a></p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect3">
<h4 id="check_the_release_artifacts">Check the Release Artifacts</h4>
<div class="paragraph">
<p>Perform basic checks against the release binary:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Check signature of generated artifacts. This can be done like that:</p>
<div class="listingblock">
<div class="content">
<pre>#!/bin/bash

mkdir /tmp/test
cd /tmp/test
curl -s -O https://dist.apache.org/repos/dist/release/opennlp/KEYS
curl -s -O https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z/apache-opennlp-x.y.z-src.tar.gz
curl -s -O https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z/apache-opennlp-x.y.z-src.tar.gz.asc

echo "
list keys
"
gpg --homedir . --list-keys

echo "
import KEYS file
"
gpg --homedir . --import KEYS

echo "
verify signature
"
gpg --homedir . --output  apache-opennlp-x.y.z-src.tar.gz --decrypt apache-opennlp-x.y.z-src.tar.gz.asc</pre>
</div>
</div>
</li>
<li>
<p>Check presence and appropriateness of <code>LICENSE</code>, <code>NOTICE</code>, and <code>README</code> files.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="create_a_vote_thread">Create a VOTE Thread</h4>
<div class="ulist">
<ul>
<li>
<p>Notify the developer mailing list of a new version vote. Be sure to replace all values in <code>[]</code> with the appropriate values.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Message Subject: [VOTE] Apache OpenNLP [version] Release Candidate</p>
</div>
<div class="listingblock">
<div class="content">
<pre>Hi folks,

I have posted a [Nth] release candidate for the Apache OpenNLP [version] release and it is ready for testing.

&lt;Add a summary to highlight notable changes&gt;

Thank you to everyone who contributed to this release, including all of our users and the people who submitted bug reports, c
ontributed code or documentation enhancements.

The release was made using the OpenNLP release process, documented on the website:
https://opennlp.apache.org/release.html

Maven Repo:
https://repository.apache.org/content/repositories/orgapacheopennlp-XXXX

&lt;repositories&gt;
&lt;repository&gt;
&lt;id&gt;opennlp-y.x.z-rc1&lt;/id&gt;
&lt;name&gt;Testing OpenNLP x.y.z release candidate&lt;/name&gt;
&lt;url&gt;
https://repository.apache.org/content/repositories/orgapacheopennlp-XXXX
&lt;/url&gt;
&lt;/repository&gt;
&lt;/repositories&gt;

Binaries &amp; Source:

https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z

Tag:

https://github.com/apache/opennlp/releases/tag/opennlp-x.y.z

Release notes:

&lt;Add link to the Jira release notes&gt;

The results of the eval tests for the aforementioned tag can be found
here: https://ci-builds.apache.org/job/OpenNLP/job/eval-tests-releases/&lt;add-link-to-build&gt;

Reminder: The up-2-date KEYS file for signature verification can be
found here: https://dist.apache.org/repos/dist/release/opennlp/KEYS

Please vote on releasing these packages as Apache OpenNLP x.y.z The
vote is open for at least the next 72 hours.

Only votes from OpenNLP PMC are binding, but everyone is welcome to
check the release candidate and vote.
The vote passes if at least three binding +1 votes are cast.

Please VOTE

[+1] go ship it
[+0] meh, don't care
[-1] stop, there is a ${showstopper}

Thanks!

&lt;Your-Name&gt;</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="after_a_successful_vote">After a Successful Vote</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The vote is successful if at least 3 <em>+1</em> votes are received from OpenNLP PMC members after a minimum of 72 hours of sending the vote email.
Acknowledge the voting results on the mailing list in the VOTE thread by sending a mail.</p>
</div>
<div class="paragraph">
<p>Message Subject: [RESULT] [VOTE] Apache OpenNLP [version]</p>
</div>
<div class="listingblock">
<div class="content">
<pre>Hi folks,

this vote passes with the following +1 being cast:

- PMC Name Y (binding)
- PMC Name X (binding)
- User Name Z
- PMC Name YY (binding)
- User Name ZZ

Thanks to all voters. I'll proceed with the steps.

&lt;Your-Name&gt;</pre>
</div>
</div>
<div class="sect2">
<h3 id="release_nexus_staging_repository">Release Nexus Staging Repository</h3>
<div class="paragraph">
<p>Release the staging repository. This will make the artifacts available in the Maven Central repository.
To do this go to the <a href="https://repository.apache.org">repository server</a>, log in, go to the staging area and release the staging repository linked to this release</p>
</div>
</div>
<div class="sect2">
<h3 id="merge_the_release_branch">Merge the Release Branch</h3>
<div class="paragraph">
<p>Merge the release branch into <code>main</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="commit_distribution_to_svn">Commit Distribution to SVN</h3>
<div class="paragraph">
<p>Move the distribution from dist/dev to dist/release via SVN</p>
</div>
<div class="listingblock">
<div class="content">
<pre>svn mv https://dist.apache.org/repos/dist/dev/opennlp/opennlp-x.y.z https://dist.apache.org/repos/dist/release/opennlp/opennlp-x.y.z -m "Release OpenNLP x.y.z"</pre>
</div>
</div>
<div class="paragraph">
<p>This will make the release artifacts available on dist.apache.org and the artifacts will start replicating.</p>
</div>
</div>
<div class="sect2">
<h3 id="delete_old_releases">Delete Old Release(s)</h3>
<div class="paragraph">
<p>To reduce the load on the ASF mirrors, projects are required to delete old releases (see <a href="https://www.apache.org/legal/release-policy.html#when-to-archive" class="bare">https://www.apache.org/legal/release-policy.html#when-to-archive</a>).</p>
</div>
<div class="paragraph">
<p>Remove the old releases from SVN under <a href="https://dist.apache.org/repos/dist/release/opennlp/" class="bare">https://dist.apache.org/repos/dist/release/opennlp/</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="update_the_website">Update the Website</h3>
<div class="paragraph">
<p>Update the website once the new version appears in the Apache download mirrors (keep checking <a href="https://www.apache.org/dyn/closer.cgi/opennlp" class="bare">https://www.apache.org/dyn/closer.cgi/opennlp</a> until you see something):</p>
</div>
<div class="sect3">
<h4 id="update_jbake_properties">Update jbake.properties</h4>
<div class="paragraph">
<p>Update the <code>jbake.properties</code> file to include the new version numbers:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code>opennlp.version=
opennlp.next.version=</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="add_new_artifact_item">Add New Artifact Item</h4>
<div class="paragraph">
<p>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.):</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="prettyprint highlight"><code data-lang="xml">&lt;artifactItem&gt;
  &lt;groupId&gt;org.apache.opennlp&lt;/groupId&gt;
  &lt;artifactId&gt;opennlp-distr&lt;/artifactId&gt;
  [version]${project.version}&lt;/version&gt;
  &lt;overWrite&gt;false&lt;/overWrite&gt;
  &lt;type&gt;zip&lt;/type&gt;
  &lt;classifier&gt;bin&lt;/classifier&gt;
  &lt;outputDirectory&gt;${project.build.directory}/distr/1.8.1&lt;/outputDirectory&gt;
&lt;/artifactItem&gt;</code></pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="update_documentation_links">Update Documentation Links</h4>
<div class="paragraph">
<p>Move the last version&#8217;s links to the documentation to the Legacy Documentation (<a href="https://opennlp.apache.org/docs/legacy.html" class="bare">https://opennlp.apache.org/docs/legacy.html</a>) page. Add the following lines at the beginning of <code>docs/legacy.ad</code>:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>### Apache OpenNLP ${previous.release} documentation
* link:/docs/${previous.release}/manual/opennlp.html[Apache OpenNLP Manual]
* link:/docs/${previous.release}/apidocs/opennlp-tools/index.html[Apache OpenNLP Tools Javadoc]
* link:/docs/${previous.release}/apidocs/opennlp-uima/index.html[Apache OpenNLP UIMA Javadoc]
* link:/docs/${previous.release}/apidocs/opennlp-brat-annotator/index.html[Apache OpenNLP BRAT Annotator Javadoc]
* link:/docs/${previous.release}/apidocs/opennlp-morfologik-addon/index.html[Apache OpenNLP Morfologik Addon Javadoc]</pre>
</div>
</div>
</div>
<div class="sect3">
<h4 id="update_main_yml">Update main.yml</h4>
<div class="ulist">
<ul>
<li>
<p>Update the <code>main.yml</code> in <code>.github</code> to force a check on the docs for this new version.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="update_doap_opennlp_rdf">Update doap_opennlp.rdf</h4>
<div class="ulist">
<ul>
<li>
<p>Update the <code>doap_opennlp.rdf</code> file to reflect the new version number and release date.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="add_news_item">Add News Item</h4>
<div class="ulist">
<ul>
<li>
<p>Add a news item in <code>news/release-{xyz}.ad</code> by copying the content from OpenNLP project <code>opennlp-distr/src/README</code>.</p>
</li>
</ul>
</div>
</div>
<div class="sect3">
<h4 id="commit_website_changes">Commit Website Changes.</h4>
<div class="ulist">
<ul>
<li>
<p>Commit the website changes.</p>
</li>
<li>
<p>Rebuild opennlp-site and redeploy the site (if Automatic Buildbot doesn&#8217;t kick in)</p>
</li>
<li>
<p>Test and review the website. Test that all download links are working. Test that the documentation is updated and can be viewed</p>
</li>
</ul>
</div>
</div>
</div>
<div class="sect2">
<h3 id="post_release_steps">Post-Release Steps</h3>
<div class="ulist">
<ul>
<li>
<p>Log the new version at <a href="https://reporter.apache.org/addrelease.html?opennlp" class="bare">https://reporter.apache.org/addrelease.html?opennlp</a>.</p>
</li>
<li>
<p>Announce the new version on the OpenNLP Twitter.</p>
</li>
<li>
<p>Announce the new version on the Apache OpenNLP blog at <a href="https://blogs.apache.org/opennlp/" class="bare">https://blogs.apache.org/opennlp/</a>.</p>
</li>
<li>
<p>Close the present release ticket in <a href="https://issues.apache.org/jira/browse/OPENNLP">JIRA</a>.</p>
</li>
<li>
<p>Send announcement email to <a href="mailto:announce@apache.org">announce@apache.org</a>, <a href="mailto:dev@opennlp.apache.org">dev@opennlp.apache.org</a>, <a href="mailto:users@opennlp.apache.org">users@opennlp.apache.org</a>. 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 (<a href="https://gmailblog.blogspot.com/2009/07/send-mail-from-another-address-without.html" class="bare">https://gmailblog.blogspot.com/2009/07/send-mail-from-another-address-without.html</a>). It&#8217;s even easier than 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.</p>
</li>
</ul>
</div>
<div class="listingblock">
<div class="content">
<pre>Title: [ANNOUNCE] OpenNLP &lt;version&gt; released
TO: announce@apache.org, users@opennlp.apache.org, dev@opennlp.apache.org</pre>
</div>
</div>
<div class="paragraph">
<p>Message body:</p>
</div>
<div class="listingblock">
<div class="content">
<pre>The Apache OpenNLP team is pleased to announce the release of version &lt;version&gt; 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 &lt;version&gt; binary and source distributions are available for download from our download page: https://opennlp.apache.org/download.html
The OpenNLP library is distributed by Maven Central as well. See the Maven Dependency page for more details: https://opennlp.apache.org/maven-dependency.html

Changes in this version:

**  TODO UPDATE THIS &gt;&gt;
- change 1
- change 2
&lt;&lt;  TODO UPDATE THIS **

For a complete list of fixed bugs and improvements please see the RELEASE_NOTES file included in the distribution.

The Apache OpenNLP Team</pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="after_an_unsuccessful_vote">After an Unsuccessful Vote</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The release vote may fail due to an issue discovered in the release candidate. If the vote fails the release should be canceled by:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Sending an email to <a href="mailto:dev@opennlp.apache.org">dev@opennlp.apache.org</a> on the VOTE thread notifying of the vote&#8217;s cancellation.</p>
</li>
<li>
<p>Dropping the staging repository at <a href="https://repository.apache.org/" class="bare">https://repository.apache.org/</a>.</p>
</li>
<li>
<p>Renaming the <code>opennlp-x.y.x</code> tag to <code>opennlp-x.y.z-RC1</code>.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>A new release candidate can now be prepared. When complete, a new VOTE thread can be started as described in the steps above.</p>
</div>
</div>
</div>

</div>

    <footer class='footer'>
        <div class="container">
            <p class="text-muted">Copyright &copy; 2024  The Apache Software Foundation, Licensed under the
            <a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>  <br>
            Apache OpenNLP, OpenNLP, Apache, the Apache feather logo, and the Apache OpenNLP project logo are
            trademarks of The Apache Software Foundation. -
            <a href="/privacy-policy.html">Privacy Policy</a></p>
        </div>
    </footer>

    <!-- Le javascript
    ================================================== -->
    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://www.apachecon.com/event-images/snippet.js"></script>
    <script src="/js/jquery-3.2.1.min.js"></script>
    <script src="/js/bootstrap.min.js"></script>
    <script src="/js/prettify.js"></script>
    
    <script type="text/javascript">

      var link = $('a[href="' + this.location.pathname + '"]');
      if (link != undefined)
    	  link.parents('li,ul').addClass('active');
	
	</script>

    <!-- Matomo -->
    <script>
        var _paq = window._paq = window._paq || [];
        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
        /* We explicitly disable cookie tracking to avoid privacy issues */
        _paq.push(['disableCookies']);
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);
        (function() {
            var u="//analytics.apache.org/";
            _paq.push(['setTrackerUrl', u+'matomo.php']);
            _paq.push(['setSiteId', '33']);
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
            g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
        })();
    </script>
    <!-- End Matomo Code -->
</body>
</html>