[ 
https://issues.apache.org/jira/browse/OPENNLP-1924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18112937#comment-18112937
 ] 

ASF GitHub Bot commented on OPENNLP-1924:
-----------------------------------------

rzo1 commented on code in PR #182:
URL: https://github.com/apache/opennlp-addons/pull/182#discussion_r3960536511


##########
dev-TEMP/addons-proposal.md:
##########
@@ -0,0 +1,70 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+Add-ons Proposal (temporary)

Review Comment:
   I think this file can be dropped.



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without

Review Comment:
   We shouldnt use the term contract. Better would be "interfaces" or a 
reference to the api module.



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition

Review Comment:
   Maven coordinates



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition
+          and verify that dependency resolution still works; previously 
published JARs stay available, and
+          consumers otherwise face duplicate classes and split packages.</para>
+  </section>
+  <section xml:id="addon-guidelines.dependencies">
+    <title>Dependencies and licensing</title>
+    <para>Keep dependencies to a minimum. A new dependency, in core or in an 
add-on, draws considerably more
+          scrutiny from reviewers than an equivalent hand-written 
solution.</para>
+    <para>Every dependency and bundled resource needs an ASF-compatible 
license and recorded provenance. A module
+          that downloads user-selected resources documents the source, who is 
responsible for its license, and
+          how integrity is verified.</para>
+  </section>
+  <section xml:id="addon-guidelines.review">
+    <title>What a pull request includes</title>
+    <para>Each pull request covers one module, or one focused change, and 
includes:</para>
+    <itemizedlist>
+      <listitem><para>tests for normal and for invalid input;</para></listitem>
+      <listitem><para>a manual page with dependency and usage 
examples;</para></listitem>
+      <listitem><para>the LICENSE and NOTICE changes it requires; 
and</para></listitem>

Review Comment:
   These should be also automatically re-generated (as stated in my other 
comment)



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition
+          and verify that dependency resolution still works; previously 
published JARs stay available, and
+          consumers otherwise face duplicate classes and split packages.</para>
+  </section>
+  <section xml:id="addon-guidelines.dependencies">
+    <title>Dependencies and licensing</title>
+    <para>Keep dependencies to a minimum. A new dependency, in core or in an 
add-on, draws considerably more
+          scrutiny from reviewers than an equivalent hand-written 
solution.</para>
+    <para>Every dependency and bundled resource needs an ASF-compatible 
license and recorded provenance. A module
+          that downloads user-selected resources documents the source, who is 
responsible for its license, and
+          how integrity is verified.</para>
+  </section>
+  <section xml:id="addon-guidelines.review">
+    <title>What a pull request includes</title>
+    <para>Each pull request covers one module, or one focused change, and 
includes:</para>
+    <itemizedlist>
+      <listitem><para>tests for normal and for invalid input;</para></listitem>
+      <listitem><para>a manual page with dependency and usage 
examples;</para></listitem>
+      <listitem><para>the LICENSE and NOTICE changes it requires; 
and</para></listitem>
+      <listitem><para>the OpenNLP version it was verified 
against.</para></listitem>
+    </itemizedlist>
+    <para>A contribution that depends on an unreleased core API stays in draft 
and documents how to build it
+          locally. It is ready for review once it builds against a published 
Apache artifact that contains that

Review Comment:
   OpenNLP artifact



##########
src/license/NOTICE.template:
##########


Review Comment:
   should be restored.



##########
dev-TEMP/README.md:
##########
@@ -0,0 +1,30 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+
+dev-TEMP

Review Comment:
   This file can be dropped.



##########
opennlp-addons-docs/src/docbkx/building.xml:
##########
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="building" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Building from Source</title>
+  <section xml:id="building.requirements">
+    <title>Requirements</title>
+    <itemizedlist>
+      <listitem><para>JDK 21 or newer</para></listitem>
+      <listitem><para>Maven 3.9.6 or newer</para></listitem>
+    </itemizedlist>
+    <para>The repository does not include a Maven wrapper.</para>
+  </section>
+  <section xml:id="building.verify">
+    <title>Verify every module</title>
+    <para>Run from the repository root:</para>
+    <screen><![CDATA[mvn clean verify -Dopennlp.forkCount=1]]></screen>
+    <para>Verification runs OpenNLP's Checkstyle rules, forbidden API checks 
on compiled production and test
+          classes, unit and integration tests, RAT license-header checks, and 
dependency-license reporting.
+          Add <code>-Pjacoco</code> to generate coverage reports.</para>
+    <para>Build one module and its reactor dependencies with <code>-pl</code> 
and <code>-am</code>:</para>
+    <screen><![CDATA[mvn -pl japanese -am verify 
-Dopennlp.forkCount=1]]></screen>
+  </section>
+  <section xml:id="building.manual">
+    <title>Generate the manual</title>
+    <para>The manual uses the DocBook Maven Plugin, matching the established 
OpenNLP manual toolchain. These are
+          build plugins and do not become application dependencies.</para>
+    <para>Generate the HTML and PDF manual:</para>
+    <screen><![CDATA[mvn -pl opennlp-addons-docs -am package 
-Dopennlp.forkCount=1]]></screen>
+    <para>Open 
<code>opennlp-addons-docs/target/docbkx/html/opennlp-addons.html</code> in a 
browser. The PDF is
+          written to 
<code>opennlp-addons-docs/target/docbkx/pdf/opennlp-addons.pdf</code>. Use a 
clean build after
+          changing manual sources:</para>
+    <screen><![CDATA[mvn -pl opennlp-addons-docs -am clean package 
-Dopennlp.forkCount=1]]></screen>
+  </section>
+  <section xml:id="building.publication">
+    <title>Maven publication</title>
+    <para>Each module uses the <code>org.apache.opennlp.addons</code> Maven 
group. The ASF parent POM supplies
+          the Apache staging repository (<code>apache.releases.https</code>) 
and snapshot repository
+          (<code>apache.snapshots.https</code>). Credentials belong in the 
release manager's Maven settings,
+          never in the repository.</para>
+    <para>The <code>apache-release</code> profile creates a buildable source 
archive and its SHA-512 checksum,
+          attaches source and Javadoc jars, and signs artifacts with GPG. 
Normal builds include
+          <code>META-INF/LICENSE</code> and <code>META-INF/NOTICE</code> in 
jars through the ASF resource bundle.
+          The dependency-license report is written to 
<code>target/DEPENDENCY-LICENSES</code>; it is not a
+          substitute for checking the contents of each distributed 
artifact.</para>
+    <para>Deployment is disabled in this branch's POM, including when 
<code>apache-release</code> is active.
+          The release plugin runs <code>verify</code> and does not push SCM 
changes. CI has read-only repository
+          permissions and does not publish artifacts. Enabling publication 
requires a separate reviewed
+          build change.</para>
+    <para>Check release packaging locally without signing or uploading:</para>
+    <screen><![CDATA[mvn clean verify -Papache-release -Dgpg.skip=true \
+  -Dopennlp.forkCount=1]]></screen>
+    <para>The unsigned source archive and checksum are written under the root 
<code>target</code> directory.
+          These are test artifacts, not an Apache release. Before publication, 
a release manager must verify

Review Comment:
   Apache -> ASF (should be adjusted in the whole doc)



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional

Review Comment:
   cotract -> interface



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the

Review Comment:
   Each "addon" module ... 



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>

Review Comment:
   Apache -> ASF



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small

Review Comment:
   contract -> interface or any other verb. "contract" is a bit claudish.



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the

Review Comment:
   The core ... sentence can be dropped.



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition
+          and verify that dependency resolution still works; previously 
published JARs stay available, and
+          consumers otherwise face duplicate classes and split packages.</para>
+  </section>
+  <section xml:id="addon-guidelines.dependencies">
+    <title>Dependencies and licensing</title>
+    <para>Keep dependencies to a minimum. A new dependency, in core or in an 
add-on, draws considerably more
+          scrutiny from reviewers than an equivalent hand-written 
solution.</para>
+    <para>Every dependency and bundled resource needs an ASF-compatible 
license and recorded provenance. A module

Review Comment:
   Link https://www.apache.org/legal/resolved.html



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition
+          and verify that dependency resolution still works; previously 
published JARs stay available, and
+          consumers otherwise face duplicate classes and split packages.</para>
+  </section>
+  <section xml:id="addon-guidelines.dependencies">
+    <title>Dependencies and licensing</title>
+    <para>Keep dependencies to a minimum. A new dependency, in core or in an 
add-on, draws considerably more
+          scrutiny from reviewers than an equivalent hand-written 
solution.</para>
+    <para>Every dependency and bundled resource needs an ASF-compatible 
license and recorded provenance. A module
+          that downloads user-selected resources documents the source, who is 
responsible for its license, and
+          how integrity is verified.</para>
+  </section>
+  <section xml:id="addon-guidelines.review">
+    <title>What a pull request includes</title>
+    <para>Each pull request covers one module, or one focused change, and 
includes:</para>
+    <itemizedlist>
+      <listitem><para>tests for normal and for invalid input;</para></listitem>
+      <listitem><para>a manual page with dependency and usage 
examples;</para></listitem>
+      <listitem><para>the LICENSE and NOTICE changes it requires; 
and</para></listitem>
+      <listitem><para>the OpenNLP version it was verified 
against.</para></listitem>

Review Comment:
   Should go into the PR template.



##########
opennlp-addons-docs/src/docbkx/building.xml:
##########
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="building" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Building from Source</title>
+  <section xml:id="building.requirements">
+    <title>Requirements</title>
+    <itemizedlist>
+      <listitem><para>JDK 21 or newer</para></listitem>
+      <listitem><para>Maven 3.9.6 or newer</para></listitem>
+    </itemizedlist>
+    <para>The repository does not include a Maven wrapper.</para>
+  </section>
+  <section xml:id="building.verify">
+    <title>Verify every module</title>
+    <para>Run from the repository root:</para>
+    <screen><![CDATA[mvn clean verify -Dopennlp.forkCount=1]]></screen>
+    <para>Verification runs OpenNLP's Checkstyle rules, forbidden API checks 
on compiled production and test
+          classes, unit and integration tests, RAT license-header checks, and 
dependency-license reporting.
+          Add <code>-Pjacoco</code> to generate coverage reports.</para>
+    <para>Build one module and its reactor dependencies with <code>-pl</code> 
and <code>-am</code>:</para>
+    <screen><![CDATA[mvn -pl japanese -am verify 
-Dopennlp.forkCount=1]]></screen>
+  </section>
+  <section xml:id="building.manual">
+    <title>Generate the manual</title>
+    <para>The manual uses the DocBook Maven Plugin, matching the established 
OpenNLP manual toolchain. These are
+          build plugins and do not become application dependencies.</para>
+    <para>Generate the HTML and PDF manual:</para>
+    <screen><![CDATA[mvn -pl opennlp-addons-docs -am package 
-Dopennlp.forkCount=1]]></screen>
+    <para>Open 
<code>opennlp-addons-docs/target/docbkx/html/opennlp-addons.html</code> in a 
browser. The PDF is
+          written to 
<code>opennlp-addons-docs/target/docbkx/pdf/opennlp-addons.pdf</code>. Use a 
clean build after
+          changing manual sources:</para>
+    <screen><![CDATA[mvn -pl opennlp-addons-docs -am clean package 
-Dopennlp.forkCount=1]]></screen>
+  </section>
+  <section xml:id="building.publication">
+    <title>Maven publication</title>
+    <para>Each module uses the <code>org.apache.opennlp.addons</code> Maven 
group. The ASF parent POM supplies
+          the Apache staging repository (<code>apache.releases.https</code>) 
and snapshot repository
+          (<code>apache.snapshots.https</code>). Credentials belong in the 
release manager's Maven settings,
+          never in the repository.</para>
+    <para>The <code>apache-release</code> profile creates a buildable source 
archive and its SHA-512 checksum,
+          attaches source and Javadoc jars, and signs artifacts with GPG. 
Normal builds include
+          <code>META-INF/LICENSE</code> and <code>META-INF/NOTICE</code> in 
jars through the ASF resource bundle.
+          The dependency-license report is written to 
<code>target/DEPENDENCY-LICENSES</code>; it is not a
+          substitute for checking the contents of each distributed 
artifact.</para>
+    <para>Deployment is disabled in this branch's POM, including when 
<code>apache-release</code> is active.
+          The release plugin runs <code>verify</code> and does not push SCM 
changes. CI has read-only repository
+          permissions and does not publish artifacts. Enabling publication 
requires a separate reviewed
+          build change.</para>
+    <para>Check release packaging locally without signing or uploading:</para>
+    <screen><![CDATA[mvn clean verify -Papache-release -Dgpg.skip=true \
+  -Dopennlp.forkCount=1]]></screen>
+    <para>The unsigned source archive and checksum are written under the root 
<code>target</code> directory.
+          These are test artifacts, not an Apache release. Before publication, 
a release manager must verify
+          source completeness, dependency licenses, signatures, 
reproducibility, and compatibility with the
+          selected core release. Staging and publication require the
+          <link 
xlink:href="https://infra.apache.org/publishing-maven-artifacts.html";>Apache 
Maven release procedure</link>

Review Comment:
   Link to https://opennlp.apache.org/release.html instead of infra



##########
opennlp-addons-docs/src/docbkx/addon-guidelines.xml:
##########
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="addon-guidelines" xmlns="http://docbook.org/ns/docbook"; 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <title>Contributing an Add-on</title>
+  <para>This chapter describes what belongs in this repository, how add-on 
artifacts are named and published, and
+        what a contribution is expected to include.</para>
+  <section xml:id="addon-guidelines.boundary">
+    <title>Where a component belongs</title>
+    <para>OpenNLP core contains shared contracts, and the implementations that 
fit its component model without
+          new runtime dependencies or bundled data.</para>
+    <para>An add-on implements a core contract, or supplies an independent 
component, when it needs additional
+          dependencies, models, dictionaries, datasets, or a separate release 
cycle. Add-ons use public OpenNLP
+          APIs; they do not duplicate them, bypass them, or rely on 
package-private access.</para>
+    <para>The <link 
xlink:href="https://github.com/apache/opennlp-sandbox";>sandbox</link> remains 
the place for
+          proofs of concept, services, and work that is not ready for an 
Apache release.</para>
+    <para>When an add-on needs a reusable contract that core does not have 
yet, propose the contract as a small
+          core change and keep the implementation here.</para>
+  </section>
+  <section xml:id="addon-guidelines.naming">
+    <title>Artifacts and packages</title>
+    <para>Each module is published to Maven Central as
+          
<code>org.apache.opennlp.addons:<replaceable>artifactId</replaceable></code>. 
Core artifacts keep the
+          <code>org.apache.opennlp</code> group.</para>
+    <para>Module and artifact names describe the feature and carry no 
<code>-addon</code> suffix. Java package
+          names describe the feature rather than the repository it is hosted 
in, so that a package does not have
+          to be renamed if a component later moves into core. Each 
implementation package belongs to exactly one
+          module.</para>
+    <para>Keep published coordinates stable. If coordinates do change, ship a 
relocation POM for the transition
+          and verify that dependency resolution still works; previously 
published JARs stay available, and
+          consumers otherwise face duplicate classes and split packages.</para>
+  </section>
+  <section xml:id="addon-guidelines.dependencies">
+    <title>Dependencies and licensing</title>
+    <para>Keep dependencies to a minimum. A new dependency, in core or in an 
add-on, draws considerably more
+          scrutiny from reviewers than an equivalent hand-written 
solution.</para>
+    <para>Every dependency and bundled resource needs an ASF-compatible 
license and recorded provenance. A module
+          that downloads user-selected resources documents the source, who is 
responsible for its license, and
+          how integrity is verified.</para>
+  </section>
+  <section xml:id="addon-guidelines.review">
+    <title>What a pull request includes</title>
+    <para>Each pull request covers one module, or one focused change, and 
includes:</para>
+    <itemizedlist>
+      <listitem><para>tests for normal and for invalid input;</para></listitem>
+      <listitem><para>a manual page with dependency and usage 
examples;</para></listitem>
+      <listitem><para>the LICENSE and NOTICE changes it requires; 
and</para></listitem>
+      <listitem><para>the OpenNLP version it was verified 
against.</para></listitem>
+    </itemizedlist>
+    <para>A contribution that depends on an unreleased core API stays in draft 
and documents how to build it
+          locally. It is ready for review once it builds against a published 
Apache artifact that contains that
+          API.</para>
+  </section>
+  <section xml:id="addon-guidelines.releases">
+    <title>Releases</title>
+    <para>Add-ons release on their own cadence through the normal OpenNLP 
vote. A release records the supported

Review Comment:
   through the regular voting process.



##########
opennlp-addons-docs/src/docbkx/opennlp-addons.xml:
##########
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<book version="5.0" xml:lang="en"
+      xmlns="http://docbook.org/ns/docbook";
+      xmlns:xi="http://www.w3.org/2001/XInclude";
+      xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <info>
+    <releaseinfo>Version <?eval ${project.version}?></releaseinfo>
+    <productname>OpenNLP Add-ons</productname>

Review Comment:
   Apache OpenNLP 



##########
opennlp-addons-docs/src/docbkx/using-addons.xml:
##########
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="using-addons" xmlns="http://docbook.org/ns/docbook";>
+  <title>Using OpenNLP Add-ons</title>
+  <section xml:id="using-addons.select">
+    <title>Select a module</title>
+    <para>Each add-on is published as a separate artifact under the 
<code>org.apache.opennlp.addons</code> group.
+          Select the artifact from the <link linkend="modules">module 
catalog</link>. The parent
+          <code>opennlp-addons</code> artifact is a build POM and is not an 
application dependency.</para>
+    <programlisting language="xml"><![CDATA[<dependency>
+  <groupId>org.apache.opennlp.addons</groupId>
+  <artifactId>japanese</artifactId>
+  <version>${opennlp-addons.version}</version>
+</dependency>]]></programlisting>
+    <para>Use the same add-ons version for each add-on in one 
application.</para>
+  </section>
+  <section xml:id="using-addons.development">
+    <title>Current development versions</title>
+    <para>The repository version is <code>3.0.0-SNAPSHOT</code>. Most modules 
currently compile against OpenNLP
+          <code>3.0.0-M5</code>, which is set by the root 
<code>opennlp.version</code> property. A module that

Review Comment:
   Can this be injected via properties?



##########
opennlp-addons-docs/src/docbkx/using-addons.xml:
##########
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
+"http://docbook.org/xml/5.0/dtd/docbook.dtd";>
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements. See the NOTICE file
+   distributed with this work for additional information regarding
+   copyright ownership. The ASF licenses this file to You under the
+   Apache License, Version 2.0 (the "License"); you may not use this
+   file except in compliance with the License. You may obtain a copy of
+   the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied. See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<chapter xml:id="using-addons" xmlns="http://docbook.org/ns/docbook";>
+  <title>Using OpenNLP Add-ons</title>
+  <section xml:id="using-addons.select">
+    <title>Select a module</title>
+    <para>Each add-on is published as a separate artifact under the 
<code>org.apache.opennlp.addons</code> group.
+          Select the artifact from the <link linkend="modules">module 
catalog</link>. The parent
+          <code>opennlp-addons</code> artifact is a build POM and is not an 
application dependency.</para>
+    <programlisting language="xml"><![CDATA[<dependency>
+  <groupId>org.apache.opennlp.addons</groupId>
+  <artifactId>japanese</artifactId>
+  <version>${opennlp-addons.version}</version>
+</dependency>]]></programlisting>
+    <para>Use the same add-ons version for each add-on in one 
application.</para>
+  </section>
+  <section xml:id="using-addons.development">
+    <title>Current development versions</title>
+    <para>The repository version is <code>3.0.0-SNAPSHOT</code>. Most modules 
currently compile against OpenNLP

Review Comment:
   Can the SNAPSHOT be injected via properties ? otherwise release plugin will 
not catch it



##########
pom.xml:
##########
@@ -349,6 +353,14 @@
         </pluginManagement>
 
         <plugins>
+            <plugin>

Review Comment:
   This is not required. ASF Parent POM handle these steps. 





> ADDONs - refactor + publish setup
> ---------------------------------
>
>                 Key: OPENNLP-1924
>                 URL: https://issues.apache.org/jira/browse/OPENNLP-1924
>             Project: OpenNLP
>          Issue Type: Epic
>            Reporter: Kristian Rickert
>            Assignee: Kristian Rickert
>            Priority: Major
>
> After a  discussion in the mailing list, we are expanding the addons repo 
> more formally:
> [https://github.com/apache/opennlp-addons]
> This will keep it's original intent but push artifacts to m2.  As part of 
> this ticket we will come up with an formalize:
>  # Boundaries of what belongs in addons vs core vs sandbox
>  ** sandbox - unpublished, experiemental
>  ** addons - published + maintained
>  ** core - core interfaces and some reference implementations of those 
> interfaces
>  # Release train for addons
>  # Versioning scheme
>  # Compatibility rules (we pretty much said that if you build it here it 
> should be compatible with the latest core)
>  # Retirement rules (given it should have a higher cadence of features than 
> core, decide some basic guidelines and rules of retiring defunct code / 
> outdated)
>  # "Graduation" rules (a highly downloaded / popular / dependent jar that 
> should become part of core)
>  # API addition rules - should a new feature go into add-ons, when to discuss 
> bringing the API into core but leave the functionality/instance in addons.
> .. and anything else we can have on the discussions
> Please note: this has been spec'ed over email so far- we expect the 
> requirements to change based on the team's full review. 
> We'll keep this ticket open until all tasks related to it are completed.
> Here are some of the good examples of what we have went over so far:
>  * Model-required features
>  * a new provider for already existing functionality (tokenizer, embeddings, 
> chunking, etc)
>  * components that are in development but highly experiemental.  (i.e. the 
> java implementation of model2vec, turboquant)
> Finally - dependencies would only be bought in very rare instances.  Even in 
> those cases, if one is added, it may never go into core.
> There are a lot more points to add, and we'll comment/edit this story to 
> represent those changing reqirements.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to