Here’s my own +1 (binding) Best Martin
> Am 23.07.2026 um 14:33 schrieb Jeff Zemerick <[email protected]>: > > +1 > > Looks good. Thanks for the release. > > On Wed, Jul 22, 2026 at 9:57 AM Richard Zowalla <[email protected]> wrote: >> >> +1 (binding) >> >> Verified OpenNLP 3.0.0-M5 RC1 on macOS, JDK 25 / Maven 3.9.16: >> >> [X] Artifacts: all 4 (src tar.gz/zip, bin tar.gz/zip) present, each with >> .asc and .sha512 >> [X] PGP: all 4 signatures Good, signed by Martin Wiesner >> <[email protected]>, key present in KEYS >> [X] SHA512: all 4 recomputed and matched >> [X] LICENSE/NOTICE present and accurate in both src and bin. NOTICE covers >> Snowball, >> stopwords (BSD/Savoy), WordPiece (MIT), SymSpell (MIT), LIBSVM/zlibsvm, >> Unicode UCD 17.0.0. >> Confirmed the binary LICENSE now includes the BSD stopword-lists section. >> [X] No unexpected binaries in the source release (only doc PNGs, small >> chunker .bin test >> models, and morfologik test dictionaries; no jars/classes/native libs) >> [X] ASF headers: all source files carry the AL header except the BSD >> Snowball stemmers, >> which are covered by NOTICE/LICENSE and listed in rat-excludes >> [X] Build completes from source: `mvn install` -> BUILD SUCCESS, README are >> clear. >> >> Additional checks: >> - Tag opennlp-3.0.0-M5 dereferences to commit >> 936db0e9b79c9150afcf2c06e107b2b958ab536d, >> matching the vote email. >> - Binary CLI runs; bin dist ships the new modular jars. >> - Nexus staging repo (orgapacheopennlp-1071) is populated with signed >> artifacts. >> >> Minor nit (non-blocking): the source release omits .mvn/wrapper/, so the >> bundled ./mvnw >> does not work standalone (we missed to create the issue last time I guess :)) >> >> The README correctly instructs `mvn install`, so building works >> as documented. >> >> Thanks for driving the release, Martin! >> >> Gruß >> Richard >> >>> Am 21.07.2026 um 15:04 schrieb Martin Wiesner <[email protected]>: >>> >>> Hi all, >>> >>> I have posted a first release candidate for the Apache OpenNLP 3.0.0-M5 >>> release and it is ready for testing. >>> >>> The 3.x release line of Apache OpenNLP introduces no known breaking changes >>> while significantly modularizing the project to improve library usage and >>> future extensibility. >>> The core API remains stable and fully compatible with 2.x, so existing >>> projects can continue using the opennlp-tools artifact without >>> modifications. >>> >>> ###### >>> This milestone delivers 33 resolved issues, headlined by a major overhaul >>> of Unicode handling and text normalization. >>> >>> The centerpiece of this release is a new Unicode-aware normalization and >>> tokenization stack. A new normalization engine (CharClass, Dimension, and >>> confusables support) is paired with an offset/alignment layer (Alignment, >>> AlignedText) that correctly tracks character offsets through >>> length-changing folds such as expansions and contractions. On top of this, >>> OpenNLP now ships a UAX #29 compliant word tokenizer (WordSegmenter, >>> WordTokenizer, WordType), a layered Term model with TermAnalyzer, and a >>> per-language NormalizationProfile registry. Full Unicode case folding has >>> been added to text normalization, whitespace handling is now aligned with >>> the Unicode White_Space property, and the deep-learning components support >>> offset-safe input normalization. A new emoji annotation layer is wired into >>> the Sentiment, Name Finder, and Doccat components, with offset-aware >>> bidirectional emoji and emoticon expansion/contraction. >>> >>> Performance and robustness also received attention: legacy >>> CharSequenceNormalizers replace regex matching with cursor scans, Tag >>> patterns are precompiled to avoid repeated compilation, and >>> normalization/tokenization hot paths saw non-breaking performance >>> improvements. Stemmers are now thread-safe, with a new StemmerFactory and >>> per-thread stem caching, and previously unexecuted stemmer tests have been >>> brought back into the build. >>> >>> On the security side, class instantiation in GeneratorFactory, >>> StreamFactory, and StringInterners is now allowlist-based, and >>> deserialization in BaseModel has been hardened. >>> >>> Housekeeping updates include moving to Apache Parent 39, JUnit 6.1.2, gRPC >>> 1.82.2, ONNX Runtime 1.27.0, and Log4j 2.26.1, plus a fix to the binary >>> distribution LICENSE to include the BSD section for the bundled stopword >>> lists. Documentation improvements cover the Entity Linker framework, the >>> BioNLP converter, and a new Dev Manual section on Unicode normalization and >>> the UAX #29 tokenizer. >>> ###### >>> >>> Thank you to everyone who contributed to this release, including all of our >>> users and the people who submitted bug reports, contributed code or >>> documentation enhancements. >>> >>> The release was made using the OpenNLP release process, documented on the >>> website: >>> https://opennlp.apache.org/release.html >>> >>> Maven Repo: >>> https://repository.apache.org/content/repositories/orgapacheopennlp-1071 >>> >>> <repositories> >>> <repository> >>> <id>opennlp-3.0.0-M5-RC1</id> >>> <name>Testing OpenNLP 3.0.0-M5 release candidate</name> >>> <url> >>> https://repository.apache.org/content/repositories/orgapacheopennlp-1071 >>> </url> >>> </repository> >>> </repositories> >>> >>> Binaries & Source: >>> >>> https://dist.apache.org/repos/dist/dev/opennlp/opennlp-3.0.0-M5-rc1/ >>> >>> Tag: >>> >>> https://github.com/apache/opennlp/releases/tag/opennlp-3.0.0-M5 >>> >>> Tag Hash: 936db0e9b79c9150afcf2c06e107b2b958ab536d >>> >>> Release notes: >>> >>> https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311215&version=12357221 >>> >>> The results of the eval tests for the aforementioned tag can be found >>> here: https://ci-builds.apache.org/job/OpenNLP/job/eval-tests-releases/36/ >>> >>> Reminder: The up-2-date KEYS file for signature verification can be >>> found here: https://dist.apache.org/repos/dist/release/opennlp/KEYS >>> >>> Checklist for reference: >>> >>> [ ] Both source (tar.gz/zip) and binary artifacts (tar.gz/zip) are present, >>> along with .asc and .sha512 files for each. >>> [ ] PGP signatures are valid for the release artifacts using the KEYS file >>> from dist.apache.org >>> [ ] SHA512 checksums are correct and verified. >>> [ ] LICENSE and NOTICE files exist and are accurate. >>> [ ] No unexpected binary files in the source release. >>> [ ] All source files have appropriate ASF headers (excluding generated >>> files and legacy files). >>> [ ] Build completes successfully from source and the instruction to do so >>> are clear. >>> >>> Please vote on releasing these packages as Apache OpenNLP 3.0.0-M5 >>> The vote is open for at least the next 72 hours. >>> >>> Only votes from OpenNLP PMC are binding, but everyone is welcome to >>> check the release candidate and vote. >>> The vote passes if at least three binding +1 votes are cast. >>> >>> Please VOTE >>> >>> [+1] go ship it >>> [+0] meh, don't care >>> [-1] stop, there is a ${showstopper} >>> >>> Thanks! >>> Martin | mawiesne >>
