Skip to content

Send the SDK release dispatch to every repository listening for it - #1320

Open
BeArchiTek wants to merge 1 commit into
stablefrom
ci/reconcile-sdk-dispatch-targets
Open

Send the SDK release dispatch to every repository listening for it#1320
BeArchiTek wants to merge 1 commit into
stablefrom
ci/reconcile-sdk-dispatch-targets

Conversation

@BeArchiTek

@BeArchiTek BeArchiTek commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

When the SDK publishes a release, this workflow tells downstream repositories so they can open their own version-bump pull request. The matrix names four recipients. Eleven repositories carry a listener for trigger-infrahub-sdk-python-update, and only two of them are wired — infrahub-demo-dc and infrahub-sync. The other nine have bump workflows that have never once been triggered.

This adds the nine missing recipients, and flags one dispatch that goes nowhere.

Key Changes

Added to the matrix:

  • opsmill/infrahub-ansible
  • opsmill/infrahub-arista-avd
  • opsmill/infrahub-demo-otn
  • opsmill/infrahub-demo-service-catalog
  • opsmill/infrahub-demo-sp
  • opsmill/infrahub-mcp
  • opsmill/infrahub-solution-ai-dc
  • opsmill/infrahub-sync-lab
  • opsmill/nornir-infrahub

One decision left for an owner: opsmill/emma

emma is dispatched to on every SDK release and has no listener for this event at all, so the dispatch is accepted and consumed by nothing.

Related

Companion PR for the Infrahub-side matrix, which had the same defect: opsmill/infrahub#10510.

opsmill/infrahub-demo-otn's listener for this event is in flight and lands before this is useful to it. A dispatch to a repository with no matching listener is a no-op rather than an error, so the ordering is safe either way.

Base branch

Targeted at stable rather than develop on purpose: release.yml fires on release: published, so the file that executes is the one at the release tag, and the bot already syncs stable into develop. Please correct me if that is wrong for this repo — recent PRs here are split across develop, infrahub-develop and stable, so I reasoned it from the release trigger rather than from convention.

Test Plan

Nothing to run: the change is a matrix list. Verification is on the next SDK release, where each newly added repository should show a run of its own bump workflow shortly after the release publishes.


Summary by cubic

Wires the SDK release dispatch to every repository listening for it. Only two of eleven listener repositories were wired before, so nine version-bump workflows never ran.

  • Adds the nine missing repositories to the dispatch matrix.
  • Leaves opsmill/emma in the matrix; its dispatch is a no-op, and whether it gains a listener or loses the dispatch is its owner's call.
  • Records the search query that lists listeners in the matrix comment, so the next reconciliation is a diff instead of an audit.

Written for commit b341679. Summary will update on new commits.

Review in cubic

@github-actions github-actions Bot added the group/ci Issue related to the CI pipeline label Sep 3, 2026
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 3, 2026

Copy link
Copy Markdown

Deploying infrahub-sdk-python with  Cloudflare Pages  Cloudflare Pages

Latest commit: b341679
Status: ✅  Deploy successful!
Preview URL: https://46219293.infrahub-sdk-python.pages.dev
Branch Preview URL: https://ci-reconcile-sdk-dispatch-ta.infrahub-sdk-python.pages.dev

View logs

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

@codecov

codecov Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

@@            Coverage Diff             @@
##           stable    #1320      +/-   ##
==========================================
- Coverage   84.24%   84.24%   -0.01%     
==========================================
  Files         147      147              
  Lines       13068    13047      -21     
  Branches     1940     1930      -10     
==========================================
- Hits        11009    10991      -18     
+ Misses       1494     1493       -1     
+ Partials      565      563       -2     
Flag Coverage Δ
integration-tests 39.10% <ø> (-0.09%) ⬇️
python-3.10 57.07% <ø> (+0.07%) ⬆️
python-3.11 57.06% <ø> (+0.06%) ⬆️
python-3.12 57.06% <ø> (+0.06%) ⬆️
python-3.13 57.07% <ø> (+0.07%) ⬆️
python-3.14 57.06% <ø> (+0.06%) ⬆️
python-filler-3.12 23.68% <ø> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 1 file with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@BeArchiTek

Copy link
Copy Markdown
Contributor Author

Closing this unmerged, for the same reason as its companion opsmill/infrahub#10510: the dispatch system is being replaced with bot-triggered fan-out, which engineering is piloting, so hand-reconciling the matrix would be thrown-away work.

Recording the survey so the replacement does not have to redo it. As of 2026-09-03, these repositories carry an on: repository_dispatch: types: [trigger-infrahub-sdk-python-update] listener:

Repository In this matrix today
infrahub-demo-dc yes
infrahub-sync yes
infrahub-ansible no
infrahub-arista-avd no
infrahub-demo-otn no
infrahub-demo-service-catalog no
infrahub-demo-sp no
infrahub-mcp no
infrahub-solution-ai-dc no
infrahub-sync-lab no
nornir-infrahub no

Two of eleven wired. infrahub-demo-dc-fabric also listens but is archived, and INFRAHUB_CUSTOMER1_REPOSITORY resolves to a secret I cannot read.

The opsmill/emma question outlives this PR and is worth carrying forward. emma is in this matrix and has no listener for this event in any workflow, so every SDK release dispatches into a repository that consumes nothing. This is already known — infrahub-github-bot/config.yaml says so in a comment, "emma is deliberately absent: it is dispatched to today but has no listener" — but this matrix was never corrected to match. Whoever builds the replacement should decide whether emma gains a listener or loses the dispatch, rather than porting the dead target across.

That case is also the argument for not rebuilding this as two hand-maintained lists: the drift runs in both directions and is silent either way. A listener with no sender never fires; a sender with no listener dispatches into the void. Deriving one side from the other would remove the whole class.

@BeArchiTek BeArchiTek closed this Sep 3, 2026
@BeArchiTek BeArchiTek reopened this Sep 3, 2026
The matrix names four recipients. Eleven repositories carry an
`on: repository_dispatch: types: [trigger-infrahub-sdk-python-update]`
listener, and only two of them are wired: infrahub-demo-dc and infrahub-sync.
The other nine have bump workflows that have never been triggered.

The reverse case is here too. opsmill/emma is dispatched to on every release
and has no listener for this event at all, so the dispatch is accepted and
consumed by nothing. infrahub-github-bot/config.yaml already records this
("emma is deliberately absent: it is dispatched to today but has no listener")
but this matrix was never corrected to match. Left in place rather than
removed, because whether emma should gain a listener or lose the dispatch is
its owner's call.

infrahub-demo-otn's listener is in flight and lands before this is useful to
it; a dispatch to a repository with no matching listener is a no-op, so the
ordering is safe either way.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@BeArchiTek
BeArchiTek force-pushed the ci/reconcile-sdk-dispatch-targets branch from ab6399e to b341679 Compare September 3, 2026 19:10
@BeArchiTek

Copy link
Copy Markdown
Contributor Author

Correction: disregard my previous comment and the close. I misread the instruction. The matrix additions are wanted; what was asked for was dropping the drift-detection tooling, not the reconciliation itself. Reopened, and the branch now carries only the added repositories.

Removed since the earlier review:

  • The gh api search/code reconciliation query and the surrounding explanation. The original # Either a literal path, or the name of a secret... comment is restored unchanged, so the diff is now purely the new matrix entries.
  • This also resolves the cubic-dev-ai finding, which was correct: that query matched this repository too, because the sender's own event-type: line contains the same string, so a naive diff would have reported the sender as a missing listener. The query is gone, so the problem is gone with it.

The branch was force-pushed to amend the single commit rather than stack a revert on top, because the original commit message described the query that no longer exists.

Longer term this is superseded by bot-triggered fan-out, which engineering is piloting. This PR is the interim step that gets the six unwired repositories receiving release notifications in the meantime.

@BeArchiTek
BeArchiTek marked this pull request as ready for review September 3, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

group/ci Issue related to the CI pipeline

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant