Skip to main content

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.

CI Python 3.12+

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_TARGET and COMPAT_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, or omniintelligence.

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_core
  • omnibase_spi
  • omnibase_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 -m unit --tb=short
uv build

Release workflow:

git tag vX.Y.Z
git push origin vX.Y.Z

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, or omnibase_infra (CI-enforced)
  • Experimental artifact registry with lifecycle governance (ticket + review_milestone required)
  • Provenance-tracked enum seeding from upstream canonical sources
  • Strict mypy + ruff + AST-based import validation

Docs

License

See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omnibase_compat-0.5.5.tar.gz (145.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omnibase_compat-0.5.5-py3-none-any.whl (100.0 kB view details)

Uploaded Python 3

File details

Details for the file omnibase_compat-0.5.5.tar.gz.

File metadata

  • Download URL: omnibase_compat-0.5.5.tar.gz
  • Upload date:
  • Size: 145.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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

Hashes for omnibase_compat-0.5.5.tar.gz
Algorithm Hash digest
SHA256 181d5e67459de60203d48d7760ae9ccc7d1c8d15dcadfcab639059359e687e4c
MD5 2abfc1e2ad39e08958a14e4efb5049aa
BLAKE2b-256 716f35e74ed8bc2210d0161445e0ab020b420d764ccf86f59decd11000bfee5a

See more details on using hashes here.

File details

Details for the file omnibase_compat-0.5.5-py3-none-any.whl.

File metadata

  • Download URL: omnibase_compat-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 100.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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

Hashes for omnibase_compat-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7609ab530acf7d8b52ff62f44015bcbed2778563ff57ae636f19cc57d15c245b
MD5 4e4ae454b957fad53b6ead885df11a02
BLAKE2b-256 486781463ac253d64ae96094e9639e897147b7cda60a2e6a40bd08029bdd221f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page