Hi all,

I (finally !) submit Apache Unomi 4.0.0 to your vote.

This release has been a long time coming. The work began as the "Unomi
Version 3" plan (UNOMI-875, February 2025), with implementation from March
2025 — months before Unomi 3.0.0 was cut in November 2025. By September
2025 the tree was already versioned 3.1.0-SNAPSHOT; 3.0.0 (and later
3.0.1 in July 2026) was a first slice, while this line continued in
parallel. As the scope grew — multi-tenancy, a second persistence backend,
a large platform refresh, and a much stronger REST and operations story —
we renamed it 4.0.0 so the version number matches the size of the change.
This candidate is the result.

A short view of what 4.0 brings:

Features
- Multi-tenancy, with a compatibility mode for single-tenant setups
- OpenSearch as a persistence option alongside Elasticsearch
- Cluster-aware scheduling, unified tenant caching, and a unified shell
  CRUD
- Tenant usage through the REST API, plus event retention purge
- Request tracing, and a rangeQuery API on persistence
- REST V2 compatibility mode, better input validation, and clearer error
  responses
- Migration scripts from 3.x, including resume-safe 3.1/4.0 migration

Platform and libraries
- Newer Karaf, Elasticsearch, OpenSearch, and Log4j
- Further third-party updates (UNOMI-990 and related)
- Stricter startup (explicit admin and health-check passwords) and tighter
  control of privileged REST, Groovy actions, and import/export
- Build cache, BOM coverage for advanced conditions, and a published
  distribution again

Fixes
- Condition validation and matching (optional parameters, unresolved
  types, segment/scoring save)
- Context/profile binding, CSV import, persona sessions, health-check
  concurrency
- Scheduler locks and recovery in a cluster
- Tracker WAB, visit/session counts, logging, and several CI/IT flakes

Documentation and developer experience
- Manual refresh with diagrams, Javadoc, and OpenAPI filled from Javadoc
- Pluggable persistence ITs, better IT progress/tooling, improved build.sh,
  and contributor guidelines

Tests grew a lot compared with 3.0.1. Annotated test methods went from about
280 to about 2,130. Most of that is new unit tests: roughly 90 unit tests in
15 classes became about 1,640 in 120 classes, while integration tests rose
from about 190 to about 490. The bulk of the unit work uses a new in-memory
persistence manager (UNOMI-881), so core services can be tested without
Elasticsearch or OpenSearch. That harness also has its own suite (about 200
tests on the in-memory store), and more than a dozen service tests (profiles,
events, rules, segments, scheduler, conditions, and others) now run on it.

Full JIRA notes (about 79 issues):
https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12356384

Staging repository:
https://repository.apache.org/content/repositories/orgapacheunomi-1054/

Source:
https://repository.apache.org/content/repositories/orgapacheunomi-1054/org/apache/unomi/unomi-root/4.0.0/unomi-root-4.0.0-source-release.zip

Convenience binaries:
https://repository.apache.org/content/repositories/orgapacheunomi-1054/org/apache/unomi/unomi/4.0.0/

Git tag:
unomi-root-4.0.0

Dist:
https://dist.apache.org/repos/dist/dev/unomi/4.0.0/

Please vote to approve this release:

[ ] +1 Approve the release
[ ] -1 Don't approve the release (please provide specific comments)

This vote will be open for at least 72 hours, or until the necessary
number of binding votes (3 +1) is reached.

Please let me know if you have any questions.

Thanks,
Serge

Reply via email to