ci: channel-compat — run the unit tests on the OVOS distro release channels - #504
ci: channel-compat — run the unit tests on the OVOS distro release channels#504JarbasAl wants to merge 2 commits into
Conversation
Adds a thin caller for the gh-automations channel-compat reusable workflow: a stable and a testing cell, each installing the dependency tree at the versions that channel pins and running test/unittests against it. Advisory (soft_fail) until a known-gap baseline exists.
|
Warning Review limit reached
Next review available in: 39 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Tada! The results of the latest automation run are here. 🎉I've aggregated the results of the automated checks for this PR below. 📋 Repo HealthScanning for any signs of repository fatigue. 😫 ✅ All required files present. Latest Version: ✅ 🔒 Security (pip-audit)Verifying the integrity of our digital supply chain. ⛓️ ✅ No known vulnerabilities found (74 packages scanned). 🔍 LintThe automated pipeline is running smoothly. 🚂 ❌ ruff: issues found — see job log 🔨 Build TestsThe build report has been filed and is ready. 📁 ✅ All versions pass
⚖️ License CheckScanning for any 'no-derivatives' clauses. 🚫 ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 📡 Channel Compat — stableEvaluating the overall progress of your contribution. 📉 🚧 Channel unresolvable with this checkout — the repo's dependency floors exceed what the channel pins (fleet finding; see the install log). Constraints: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-stable.txt 📡 Channel Compat — testingJust a quick heads-up on the latest check. 🛎️ 🚧 Channel unresolvable with this checkout — the repo's dependency floors exceed what the channel pins (fleet finding; see the install log). Constraints: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-testing.txt From the digital workshop of OpenVoiceOS. 🛠️ |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds a thin caller for the new
channel-compatreusable workflow: run this repo's unit tests against the package versions an OVOS distro release channel pins, instead of against current dev siblings.Why
Every gate this repo has looks at the dev edge. None of them looks at what the fleet runs.
The distro publishes one constraints file per channel, and they sit a long way below dev:
ovos-workshopovos-coreovos-bus-clientovos-padatious>=3.4.0,<3.5.0>=1.3.1,<1.4.0>=1.3.4,<1.4.0>=1.4.2,<1.5.0>=7.0.6,<8.0.0>=2.1.1,<3.0.0>=1.3.7,<2.0.0>=1.4.3,<2.0.0A change can be green on dev and still break every device on stable. Nothing catches that today.
Three layers, one program
Each is useless alone. A boundary pin tells you nothing about whether anyone is on the far side of it. A channel run tells you a clause fails but not since when. Together they qualify a breakage: which behavior, which versions, how many devices.
What this PR does
One matrix, two cells (
stable,testing), callingOpenVoiceOS/gh-automations/.github/workflows/channel-compat.yml@dev. The reusable workflow fetches the constraints live, installs every dependency at channel versions, installs this repo from the PR checkout (its own version wins over the channel's published copy — the PR is the thing being judged), and runs the tests. The fetched constraints and apip freezeare uploaded as artifacts, because a run that goes red weeks later cannot be reproduced from the URL.Also runs weekly on a schedule: the channels move on the distro's calendar, not on this repo's, and a pin bump would otherwise go unnoticed until the next PR.
Advisory for now
soft_fail: true. A channel is behind dev by construction, so the first runs are expected to fail a pile of tests — that is the finding, not a broken job. Turn it off once the baseline is established, the same way ovos-test-harness#16 did it: check in a per-channel known-gap file, strict-xfail exactly those node ids, and let anything else be red. Known gaps stay visible and green; new breakage is red; a gap the channel has since closed is red too, as the cue to delete the line.(
continue-on-errorcannot be used here — GitHub rejects it on a job that calls a reusable workflow — so the advisory mode is an input on the reusable workflow.)Related
Implemented by Claude (opus), orchestrated by Claude Fable.
🤖 Generated with Claude Code