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 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, 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.0.tar.gz (133.2 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.0-py3-none-any.whl (108.6 kB view details)

Uploaded Python 3

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

Hashes for omnibase_compat-0.5.0.tar.gz
Algorithm Hash digest
SHA256 379760cc5599a35c31c083a07cd234fb665daa80712268cb47f663434652303b
MD5 5e2ae482d1564856f62c1c60e073ba1f
BLAKE2b-256 401a208398513236abcc93768b7497497505d337e622a1f9227b0930c18b5070

See more details on using hashes here.

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

Hashes for omnibase_compat-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4587a2eaade6587e9bdf8e8f0a34a8b80bc04aa43cc4654b2ab3dfe04f6f1942
MD5 dfffdf5af7e577d6bad0d9aff3c06f6f
BLAKE2b-256 0e6fc412096defd9fd03e48041722f2e4ab52db6d085162c097cdde8696bf1e4

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