[
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)