fix(platform-seanfarm): map tests/ so guard changes can build #325

Open
sean wants to merge 1 commit from fix/platform-seanfarm-tests-path into trunk
Owner

What

Adds tests/** to the paths of the platform group for the platform-seanfarm project. One line.

Why

binjovi-gitops-select requires every changed path to map to a group. The platform-seanfarm project has exactly one group, whose paths are:

apis/**  instances/**  instances-post/**  crossplane-rbac/**

tests/** is absent, so any change touching a guard fails the build before it runs:

binjovi-gitops-select: unmapped changed paths:
  tests/check-binjovi-forgejo-key.sh, tests/check-composition-fmt-args.sh, tests/check.sh

That is platform-seanfarm #686, which changes two guards alongside the composition. It never reached its build checks.

The gap is self-evident once seen: the same group already declares

"build_checks": ["tests/check.sh"]

So the group runs a guard it cannot be triggered by. A PR touching only tests/ was unbuildable, and a PR touching apis/ plus tests/ failed rather than running the guards it changed.

Why paths and not render_paths

paths selects which group a change belongs to. render_paths selects what gets rendered into the deployment artifact.

A guard change belongs to this group -- it is the group that runs tests/check.sh -- so it goes in paths. It renders nothing, so it stays out of render_paths. The rendered output is byte-identical for a tests-only change; the value is that the guards actually run.

This matches how seanfarm already works. Its binjovi-control-plane group lists tests/binjovi*.sh in paths beside the manifests, and its platform-fallback group carries a broad tests/**. platform-seanfarm has no fallback group at all, which is why nothing absorbed these paths.

Not ignored_paths

ignored_paths (README.md, docs/**) would also stop the failure, and would be wrong: it would mean guard changes silently skip the build. The point is to run them.

Checks

./scripts/check exits 0; tests/native-catalog-test exits 0.

Purely additive -- one glob added to one group, no project removed, so PlanSource.validate_additive is satisfied.

https://claude.ai/code/session_01GfkEuwuvGSqGyXVuxwT7PA

## What Adds `tests/**` to the `paths` of the `platform` group for the `platform-seanfarm` project. One line. ## Why `binjovi-gitops-select` requires every changed path to map to a group. The `platform-seanfarm` project has exactly one group, whose `paths` are: ``` apis/** instances/** instances-post/** crossplane-rbac/** ``` `tests/**` is absent, so any change touching a guard fails the build before it runs: ``` binjovi-gitops-select: unmapped changed paths: tests/check-binjovi-forgejo-key.sh, tests/check-composition-fmt-args.sh, tests/check.sh ``` That is platform-seanfarm #686, which changes two guards alongside the composition. It never reached its build checks. The gap is self-evident once seen: the same group already declares ```json "build_checks": ["tests/check.sh"] ``` So the group runs a guard it cannot be triggered by. A PR touching only `tests/` was unbuildable, and a PR touching `apis/` plus `tests/` failed rather than running the guards it changed. ## Why `paths` and not `render_paths` `paths` selects which group a change belongs to. `render_paths` selects what gets rendered into the deployment artifact. A guard change belongs to this group -- it is the group that runs `tests/check.sh` -- so it goes in `paths`. It renders nothing, so it stays out of `render_paths`. The rendered output is byte-identical for a tests-only change; the value is that the guards actually run. This matches how `seanfarm` already works. Its `binjovi-control-plane` group lists `tests/binjovi*.sh` in `paths` beside the manifests, and its `platform-fallback` group carries a broad `tests/**`. `platform-seanfarm` has no fallback group at all, which is why nothing absorbed these paths. ## Not `ignored_paths` `ignored_paths` (`README.md`, `docs/**`) would also stop the failure, and would be wrong: it would mean guard changes silently skip the build. The point is to run them. ## Checks `./scripts/check` exits 0; `tests/native-catalog-test` exits 0. Purely additive -- one glob added to one group, no project removed, so `PlanSource.validate_additive` is satisfied. https://claude.ai/code/session_01GfkEuwuvGSqGyXVuxwT7PA
fix(platform-seanfarm): map tests/ so guard changes can build
All checks were successful
binjovi/ci Binjovi completed the frozen plan
43c9edb1d7
binjovi-gitops-select requires every changed path to map to a group. The
platform-seanfarm project has one group, and its paths cover apis, instances,
instances-post and crossplane-rbac. tests is absent, so any change touching a
guard fails before the build checks run:

  binjovi-gitops-select: unmapped changed paths: tests/check-binjovi-forgejo-key.sh,
  tests/check-composition-fmt-args.sh, tests/check.sh

That is platform-seanfarm #686, which changes two guards beside the
composition.

The same group already declares build_checks: ["tests/check.sh"], so it runs a
guard it cannot be triggered by. A tests-only change was unbuildable, and a
mixed change failed instead of running the guards it modified.

tests/** goes in paths, not render_paths: paths decides which group a change
belongs to, and this is the group that runs tests/check.sh. Guards render
nothing, so the rendered output is unchanged; the value is that they run.

seanfarm already works this way. Its binjovi-control-plane group lists
tests/binjovi*.sh beside the manifests, and its platform-fallback group carries
a broad tests/**. platform-seanfarm has no fallback group, so nothing absorbed
these paths.

ignored_paths would also silence the failure and would be wrong: guard changes
would skip the build instead of running.

Claude-Session: https://claude.ai/code/session_01GfkEuwuvGSqGyXVuxwT7PA
All checks were successful
binjovi/ci Binjovi completed the frozen plan
Required
Details
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/platform-seanfarm-tests-path:fix/platform-seanfarm-tests-path
git switch fix/platform-seanfarm-tests-path
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/binjovi-plans!325
No description provided.