Repository navigation
chore(OMN-16831): bump omnibase_core 0.46.14 -> 0.47.0 and cut the release the fleet re-pin is gated on - #1615
Conversation
…lease the fleet re-pin is gated on OMN-16831 item 2 (runtime tenant stamping) is gated on "omnibase_core releases + fleet re-pins" -- recorded in omnibase_infra#2976 and omnimarket#2199. Ten PRs have merged to dev since v0.46.13 and none of them is on PyPI, so no downstream repo can bind against any of them. Minor, not patch: the delta contains a breaking public-API deletion. #1612 (OMN-16884) removed `status_colors` from `ModelWidgetConfigStatusGrid`, a model published since #363 that carries `extra="forbid"` -- any caller still passing `status_colors=` now raises. CHANGELOG.md's own convention names this case twice ("Minor bump per pre-1.0 semver convention for a breaking public-API deletion", v0.45.0; "...for breaking surface relocations", v0.46.0). pyproject sat at 0.46.14 only because an unrelated fix PR (d89b107, OMN-16037) bumped it inline; 0.46.14 was never tagged or published, so nothing is skipped by going to 0.47.0. Evidence-Ticket: OMN-16831
|
Warning Review limit reachedNext included review available in 7 minutes. View limit detailsLimit details: You’ve used the included review currently available. Your 132 included PR review attempts over the past 7 days set your current allowance at 1 review per hour. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (2)
Comment |
…#7534) * evidence: OCC companion pass 1 for OmniNode-ai/omnibase_core#1615 * evidence: OCC companion self-bind for #7534 --------- Co-authored-by: node-occ-companion-effect <occ-companion-effect@omninode.ai>
|
Correction to this PR's own description, and to the v0.47.0 CHANGELOG entry it landed. This PR body and
That is wrong on the load-bearing half. The The version decision is unaffected and, if anything, better supported: 0.47.0 carries two breaking changes, not one. But the release notes understate the breaking surface, so anyone reading them to decide whether to upgrade is reading an incomplete list. Proven consequence, not a hypothetical. The cascade bump PR omnibase_infra#3000 fails with The correct v0.47.0 breaking-changes list is:
A follow-up PR correcting the |
Summary
Cuts v0.47.0 — the omnibase_core release that OMN-16831 item 2 (runtime tenant stamping) is explicitly gated on. Both omnibase_infra#2976 and omnimarket#2199 record the precondition as "omnibase_core releases + fleet re-pins". Ten PRs have merged to
devsincev0.46.13and none of them is on PyPI, so no downstream repo can bind against any of them today. omniui Phase 1A binds against the Phase C models and needs a published version for the same reason.Why MINOR (0.47.0), not the 0.46.14 currently in
pyprojectCHANGELOG.mdstates this repo's convention twice, in its own words:The delta contains exactly such a deletion. #1612 removed
status_colorsfromModelWidgetConfigStatusGrid— a model published since #363, carryingConfigDict(extra="forbid"). Any caller still passingstatus_colors=now raisesValidationError. It is replaced byseverity_roles: tuple[ModelSeverityRole, ...], which names theme tokens instead of carrying hex values.pyprojectsat at 0.46.14 only because an unrelated fix PR (d89b1076) bumped it inline. 0.46.14 was never tagged and never published, so nothing is skipped by going straight to 0.47.0. Shipping this delta as a patch would publish a breaking public-API deletion under a version that five downstream repos'<0.47.0caps were written to accept — the precise failure those caps exist to prevent.Delta since v0.46.13 (10 PRs, 43 src files, +2638 / -226)
872beef0c8050400ae6a19d6extra="forbid"— additive)32cf8fcdf3cb4d72f8eef25e.onex_statedisposable-by-default with two named durable subtrees8c41a3caonex validated89b1076~/.onex/config.yamlschema across all CLI writersbb48dffcc454c68a--squashwhen no queue is activeAll ten merged with required checks green. Zero open PRs on omnibase_core at the time this was cut — no concurrent release work.
Verification
--base origin/dev→OK: no packaged src/** change in this diff — version bump not required (pyproject 0.47.0, latest published 0.46.13).; strict →OK: version 0.47.0 is ahead of latest published 0.46.13.git merge-base --is-ancestor origin/main origin/dev→ TRUE, sorelease.yml's Sync-main step (OMN-16289) can actually fast-forward.origin/mainis currently2a5ac713== thev0.46.13tag commit, so the release-synced-main policy is holding mechanically.gh api repos/OmniNode-ai/omnibase_core/tags/protection→ 404; the only ruleset isMerge Queue(id 13269695,enforcement=disabled). The release needs no operator approval step.44298 passed, 53 skipped, 3 xpassed, 155 warnings in 6643.49s (1:50:43), then[prepush-smart-tests] impacted tests passed; allowing push.The selector escalated to the whole non-integration tree becausepyproject.tomlchanged. NoPREPUSH_FULL_SUITE/ENABLE_SMART_TESTS=offoverride was set and no escalation was bypassed.uv.lockregenerated in the same commit (Updated omnibase-core v0.46.14 -> v0.47.0).OMN-<digits>in docs on this public repo).Known cascade consequence — stated up front, not discovered later
dependency-cascade.ymlbumps six downstream repos. Only omnibase_infra pins core exactly (omnibase-core==0.46.13), which the cascade's "Update pyproject.toml pin" step rewrites via its==X.Y.Zregex. The other five cap core below this release:==0.46.13>=0.46.3,<0.47.0>=0.46.13,<0.47.0>=0.46.5,<0.47.0>=0.46.8,<0.47.0>=0.46.13,<0.47.0uv lock --upgrade-packagecannot cross a range cap, so those five legs will resolve to the same version they already have, see no diff, and report "already on latest" — a false statement of the same class OMN-15604 / OMN-16286 hardened against for[tool.uv.sources]git overrides. The existing guard (check_dep_provenance.py --check-movable) only detects the git-override channel, not a range cap. That gap is real and is being filed separately; it is not introduced by this PR.The caps are safe to widen: no Python consumer in the fleet references
status_colorsorModelWidgetConfigStatusGrid(grep across omnibase_infra, omniintelligence, omnimemory, omniclaude, onex_change_control, omninode_infra, omnimarket → zero hits). The only fleet reference is omnidash's generated TypeScript types, which regenerate from core rather than resolving a Python pin. Cap-widening + re-pin PRs follow this release, per repo.Test plan
mainis an ancestor ofdev(post-release FF can succeed)uv.lockin sync with the bumpedpyproject.tomlgh pr checksgreen in CI (confirmed post-open)After this merges
Push lightweight tag
v0.47.0at the merge commit (this repo's tags are lightweightcommitrefs —v0.46.11/12/13all are;auto-tag-on-merge.ymlfires only on arelease:/chore: release/chore(release)title prefix or areleaselabel, which no recent release used).release.ymlthen builds, publishes to PyPI, cuts the GitHub Release, fast-forwardsmain, and fires the dependency cascade — including the omninode_infra leg added by #1613, whose first live exercise this will be.Evidence-Ticket: OMN-16831
Evidence-Source: OCC#7534