+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
