Thin shared structural package for cross-repo enums, wire DTOs, event envelopes, primitives, and experimental schemas.
Project description
omnibase_compat
omnibase_compat is the thin shared structural package for cross-repo enums,
wire DTOs, event envelopes, concurrency helpers, and compatibility primitives.
It has zero OmniNode upstream runtime dependencies. Runtime dependencies are
limited to third-party structural support packages listed in pyproject.toml.
Who Uses It
Use this package when two or more OmniNode repos need to share stable structural
types without creating an import cycle through omnibase_core,
omnibase_spi, or omnibase_infra.
Common consumers include dashboard, intelligence, memory, market, infrastructure, and governance repos that need shared event envelopes, status enums, routing DTOs, or transitional compatibility shims.
What This Repo Owns
- Cross-repo structural DTOs and wire models
- Minimal event envelopes intended for cross-repo transport compatibility
- Minimal enum copies with explicit source provenance
- Concurrency and environment primitives that do not depend on OmniNode runtime packages
- Experimental artifacts with ticket and review milestone metadata
- Temporary migration shims with
COMPAT_MIGRATION_TARGETandCOMPAT_REMOVAL_DATE
What This Repo Does Not Own
- Runtime execution, node behavior, validators, and implementation helpers. Those belong in
omnibase_core. - Protocol interfaces that implementations satisfy. Those belong in
omnibase_spi. - Concrete infrastructure, clients, storage, registration operations, or runtime host behavior. Those belong in
omnibase_infra. - Domain-specific workflow ownership. That belongs in the relevant domain repo, such as
omnimarket,omnimemory, oromniintelligence.
Install
uv add omnibase-compat
For local development:
uv sync --dev --frozen
Usage
from omnibase_compat.enums.enum_message_category import EnumMessageCategory
from omnibase_compat.enums.enum_node_kind import EnumNodeKind
from omnibase_compat.models.event_envelope import EventEnvelopeV1Minimal
Import from explicit submodules. Treat package-root exports as convenience exports only, not the stable compatibility surface.
Dependency Boundary
omnibase_compat must not import these packages at runtime:
omnibase_coreomnibase_spiomnibase_infra
CI enforces this with:
uv run python scripts/validate_no_upstream_deps.py
Do not add omnibase_core only to make documentation validation convenient.
Docs validation should run through standalone CI tooling or from the repo that
owns the validator entrypoint. If this repo adopts onex-validate-links, it
must remain dev-only tooling and must not change runtime dependencies.
Role vs omnibase_spi
| Layer | Purpose |
|---|---|
omnibase_spi |
Protocols and abstract interfaces that service implementations must satisfy |
omnibase_compat |
Shared enums, wire DTOs, event envelopes, and structural types across repo boundaries |
Rule of thumb: protocols go in omnibase_spi; structural data that crosses repo
boundaries goes in omnibase_compat.
Common Workflows
uv run python scripts/validate_no_upstream_deps.py
uv run python scripts/check_compat_retention.py
uv run ruff check src/
uv run mypy src/omnibase_compat --strict
uv run pytest src/omnibase_compat/tests/ -m unit --tb=short
uv build
Release workflow:
git tag v0.3.1
git push origin v0.3.1
The tag must match [project].version in pyproject.toml. See
Release Workflow for the full runbook.
Key Features
- Zero dependency on
omnibase_core,omnibase_spi, oromnibase_infra(CI-enforced) - Experimental artifact registry with lifecycle governance (
ticket+review_milestonerequired) - Provenance-tracked enum seeding from upstream canonical sources
- Strict mypy + ruff + AST-based import validation
Docs
- Documentation index
- Release workflow
- CLAUDE.md - developer conventions and repo context
- AGENT.md - LLM navigation guide
- Changelog
- Contributing
- Security
License
See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file omnibase_compat-0.5.0.tar.gz.
File metadata
- Download URL: omnibase_compat-0.5.0.tar.gz
- Upload date:
- Size: 133.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
379760cc5599a35c31c083a07cd234fb665daa80712268cb47f663434652303b
|
|
| MD5 |
5e2ae482d1564856f62c1c60e073ba1f
|
|
| BLAKE2b-256 |
401a208398513236abcc93768b7497497505d337e622a1f9227b0930c18b5070
|
File details
Details for the file omnibase_compat-0.5.0-py3-none-any.whl.
File metadata
- Download URL: omnibase_compat-0.5.0-py3-none-any.whl
- Upload date:
- Size: 108.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4587a2eaade6587e9bdf8e8f0a34a8b80bc04aa43cc4654b2ab3dfe04f6f1942
|
|
| MD5 |
dfffdf5af7e577d6bad0d9aff3c06f6f
|
|
| BLAKE2b-256 |
0e6fc412096defd9fd03e48041722f2e4ab52db6d085162c097cdde8696bf1e4
|