fix(module-ci): declare compatibility when publishing on merge - #19
Merged
Merged
Conversation
raptor v0.1.106 guards publication: an already-published version needs
--backward-compatible yes, and a new contract version needs --versionupgrade.
The action published with neither, so publish-on-merge fails for every module a
repository has already shipped — which is every module in every existing
modules repo. The action installs `raptor_version: latest`, so this went live
with that release rather than with any workflow change.
In a repo-first flow the author has already declared, in git: editing
modules/{intent}/{flavor}/0.2 in place says "compatible"; adding a 0.3 directory
says "breaking". The publish step now reads the published versions of that
intent/flavor off the Control Plane and passes the matching flag:
nothing published for the type/flavor -> no declaration
the target version IS published -> --backward-compatible yes
the target version is new -> --versionupgrade
Version ORDERING stays raptor's job. A bump that is not actually greater than
every published version is rejected there, and must be — the action does not
second-guess it.
A failed listing fails the module instead of publishing. Reading an unreadable
count as "nothing is published" would send a first-publication declaration for a
module that already has one, which raptor would then reject anyway — but on the
wrong grounds, and after the upload.
Verified against a real control plane: an existing published version resolves to
--backward-compatible yes, a new version of the same type/flavor to
--versionupgrade, and an unknown type/flavor to no flag.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Publish-on-merge is currently broken in every modules repo
raptor v0.1.106 added publish guards (raptor #434): an already-published version needs
--backward-compatible yes, and a new contract version needs--versionupgrade. The action published with neither:From raptor's own guard test matrix:
0.20.20.2--backward-compatible yesrequired0.30.2--versionupgraderequiredSo the only case that still works is the first module of a brand-new type/flavor. Every ordinary merge — editing a module that already shipped — fails at publish.
This is not caused by any workflow change: the action installs
raptor_version: latest, so it went live the moment v0.1.106 was released. Onvibe-app, all 18 of vibe-modules' modules arePUBLISHED, so every one of them is affected.The fix
In a repo-first flow the author has already declared, in git:
modules/{intent}/{flavor}/0.2in place--backward-compatible yesmodules/{intent}/{flavor}/0.3directory--versionupgradeThe publish step reads the published versions of that
intent/flavorback off the Control Plane and passes the matching flag.Version ordering stays raptor's job. A "bump" that is not actually greater than every published version is rejected there, and must be — the action does not second-guess it. Likewise a non-
READMEmodule still fails raptor's README guard, as intended.A failed listing fails the module rather than publishing. Reading an unreadable count as "nothing is published" would send a first-publication declaration for a module that already has one.
Testing
The derivation was exercised against the live
vibe-appregistry:bash -nandshellcheck --severity=warningclean.A full merge-path test needs a real publish into a control plane; happy to run one on vibe-modules if you want it before the tag.
Why this blocks the
v1tagMoving
v1is an auto-upgrade for every consumer. It should not advertise one into a broken publish path — this fix wants to ride the same tag as #17 and #18.🤖 Generated with Claude Code