+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 >
