ci(quality): unpin the hydra-gates package, which is now failing the job outright - #230
Closed
rubenvdlinde wants to merge 1 commit into
Closed
ci(quality): unpin the hydra-gates package, which is now failing the job outright#230rubenvdlinde wants to merge 1 commit into
rubenvdlinde wants to merge 1 commit into
Conversation
Contributor
Quality Report — ConductionNL/nldesign @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 2/2 | |||
| PHPUnit | ✅ | ||||
| Newman | ❌ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-06 06:09 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Quality Report — ConductionNL/nldesign @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 2/2 | |||
| PHPUnit | ✅ | ||||
| Newman | ❌ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-06 07:22 UTC
Download the full PDF report from the workflow artifacts.
…it was cut development moved from v1.3.0 to v1.5.0 while this branch was open, which fixes the symptom that opened it: v1.5.0 satisfies #177's capability probe, so Hydra Gates no longer fails before a gate runs. Unpinning entirely still matters, and the reason is now sharper than when this branch started. v1.5.0 carries a fleet-wide falsely-RED gate. gate-28 license-triangle reported a `structural` coverage gap whenever the diff scope was empty — that is, on every PR that does not touch lib/**/*.php, which is most of them — because "no file in scope" and "files in scope, none carried a licence declaration" reached the same branch. With hydra-gates-require-full-coverage defaulting TRUE, that is exit 98. It is fixed in ConductionNL/.github#182, on main. A repo pinned to v1.5.0 cannot see that fix, and the tag will not move. Measured here against the real runner, three arms: diff = .github/workflows/code-quality.yml before SKIPPED(structural) after NOT APPLICABLE diff = 3 files under lib/ PASS, both diff = a lib/*.php declaring AGPL while composer.json declares EUPL-1.2 FAIL — 1 file(s) That is the whole argument for #177's contract in one branch: this repo was pinned at v1.3.0, bumped to v1.5.0 to clear one breakage, and would have needed a third commit to clear the next one. A pin is a silent expiry date on every upstream fix. Verified on this PR's own run after the unpin: Hydra Gates PASS in 20s, 58 applicable gates green, 5 correctly NOT APPLICABLE. Rollback for this repo alone stays available: set hydra-gates-ref explicitly. An escape hatch, not a resting state.
rubenvdlinde
force-pushed
the
chore/unpin-hydra-gates
branch
from
August 6, 2026 07:25
76302eb to
3aea1bc
Compare
Contributor
Quality Report — ConductionNL/nldesign @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| test-l10n | ✅ | ||||
| composer | ✅ | ✅ 100/100 | |||
| npm | ✅ | ✅ 2/2 | |||
| PHPUnit | ❌ | ||||
| Newman | ❌ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ✅ |
Quality workflow — 2026-08-06 07:41 UTC
Download the full PDF report from the workflow artifacts.
Contributor
Author
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.
quality / Hydra Gatesis red ondevelopment, and not for anything in this repo.ConductionNL/.github#177 added a step that verifies the pinned package contains every path the workflow executes by name. Our pin,
v1.3.0, ships none ofcheck_spec_anchors.py,check_form_labels.pyorcheck_license_triangle.py, so the job fails before a single gate runs. Listing all nine required paths at each tag:Second time, same shape
quality.ymlis consumed@mainwhile the package was pinned, so the two move independently and a change on one side reaches an old runner on the other. #164 was the first instance: it flippedhydra-gates-require-full-coverageto default TRUE while the accounting that makes that flag survivable ships in the package, and every older pin went red on gates it has no subject matter for.Why remove the input rather than bump to v1.5.0
That is the fleet contract as of ConductionNL/.github#177 — the PO's ask was "stop pinning the package per repo". A pin is a silent expiry date on every upstream fix, and it turned each fix into a 23-PR treadmill.
The guard that makes tracking
mainsafe landed in the same PR. An unresolvable reusable workflow is not a red check — GitHub produces a run with no jobs, so every dashboard stays green while every caller quietly stops being checked.quality-resolve-probe.ymlcounts the jobs a caller materialises and asserts> 0.Rollback for this repo alone stays available: set
hydra-gates-ref:explicitly. An escape hatch, not a resting state.Blocks #228. Same fix is needed in 16 other repos — sweeping them once this one is verified green.