Skip to content

Point the kernel benchmark at a path that exists (#775) - #789

Merged
Rafael-SOWNet merged 1 commit into
masterfrom
fix/775-kernel-benchmark-path
Aug 7, 2026
Merged

Point the kernel benchmark at a path that exists (#775)#789
Rafael-SOWNet merged 1 commit into
masterfrom
fix/775-kernel-benchmark-path

Conversation

@Rafael-SOWNet

Copy link
Copy Markdown
Collaborator

Fixes #775.

Both triggers filtered on "./Sources/AngouriMath/AngouriMath", which is not a path in this tree. The kernel is Sources/AngouriMath/ and its project file is Sources/AngouriMath/AngouriMath.csproj — there is no nested AngouriMath directory, and the pattern has no wildcard, so it could only ever match that one literal non-existent path.

The workflow last ran on 2026-01-02T14:24Z. The filter was re-added in f51c7e03 at 14:26Z — two minutes later. The January runs happened during the #640 CI work while the filter was temporarily absent, which is why the history looks alive up to that point and then stops dead.

Ninety-eight PRs have merged since. None were benchmarked, so a PR could have regressed Simplify by any factor with CI entirely green. These are the inter-version CPU and RAM benchmarks behind #529 and #500, and the only automated guard on not losing speed or memory on popular use cases.

The change

-      - "./Sources/AngouriMath/AngouriMath"
+      - "Sources/AngouriMath/**"
+      - "Sources/Tests/DotnetBenchmark/**"
+      - ".github/workflows/Benchmark.yml"

Two paths beyond the kernel, each for a reason:

  • the benchmark harness — a change to what is measured is worth measuring;
  • this file — which is also what makes the fix self-demonstrating. Kernel Benchmark has not run since 2026-01-02: its path filter targets a directory that does not exist #775 asks that whoever takes this "confirm the trigger fires rather than reasoning about the glob", and a PR that changes only a workflow file otherwise cannot. Because Benchmark.yml is now in its own path list, Kernel Benchmark should appear on this PR's checks — if it does not, the fix is wrong and you can see that without merging it.

workflow_dispatch added as well, so the benchmark can be run against a branch on demand. It could not be before.

The leading ./ was separately wrong — path filters are globs matched against repository-root-relative paths — though it made no difference while the target did not exist either way.

Two notes for review

The list is written out twice rather than shared through a YAML anchor. Anchors are not a supported part of the workflow syntax, and a benchmark that fails to parse is a worse outcome than the one being fixed.

Whether the pull_request leg should filter at all is still open, as #775 says: the job takes 9–11 minutes. This PR keeps the filter and makes it correct rather than deciding that question — but now that it works, dropping the filter is a one-line follow-up if the maintainers would rather every PR be benchmarked.

Checked

  • the file parses, and both triggers resolve to the three paths above
  • Sources/Tests/DotnetBenchmark builds clean on .NET 10, and CommonFunctionsInterVersion and RAMUsageTest — the two names the job passes on the command line — both still resolve in Program.cs

🤖 Generated with Claude Code

Both triggers in Benchmark.yml filtered on "./Sources/AngouriMath/AngouriMath",
which is not a path in this tree. The kernel is Sources/AngouriMath/ and its
project file is Sources/AngouriMath/AngouriMath.csproj; there is no nested
AngouriMath directory, and the pattern has no wildcard, so it could only ever
match that one literal non-existent path.

The workflow last ran on 2026-01-02T14:24Z. The filter was re-added in f51c7e0
at 14:26Z -- two minutes later. The January runs happened during the #640 CI
work while the filter was temporarily absent, which is why the history looks
alive up to that point and then stops dead. Ninety-eight PRs have merged since
without being benchmarked, so a PR could regress Simplify by any factor with CI
entirely green.

Two paths added beyond the kernel. A change to the benchmark harness is worth
benchmarking, and so is a change to this file -- the second of those is also
what lets a fix to these filters demonstrate that it fires, rather than being
reasoned about, which is what the issue asks for.

The leading "./" was wrong as well, path filters being globs matched against
repository-root-relative paths, though it made no difference while the target
did not exist either way.

workflow_dispatch added so the benchmark can be run against a branch on demand,
which it could not be before.

The list is written out twice rather than shared through a YAML anchor: anchors
are not a supported part of the workflow syntax, and a benchmark that fails to
parse is worse than the one being fixed. The file parses, and
Sources/Tests/DotnetBenchmark builds clean on .NET 10 with both benchmark names
in Program.cs still resolving.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Rafael-SOWNet

Copy link
Copy Markdown
Collaborator Author

Verified, rather than reasoned about, as the issue asks.

2026-08-07T17:54:09  completed/success  pull_request  fix/775-kernel-benchmark-path
2026-01-02T14:24:22  completed/success  pull_request  issue-620

Those are the two most recent runs of Kernel Benchmark. The first is this PR — the workflow triggered because .github/workflows/Benchmark.yml is in its own new path list, and it succeeded, which also establishes that the job itself still works after seven months of drift on .NET 10.

Run: https://github.com/asc-community/AngouriMath/actions/runs/31204448891

@Rafael-SOWNet
Rafael-SOWNet merged commit 2cb2f53 into master Aug 7, 2026
25 checks passed
@Rafael-SOWNet
Rafael-SOWNet deleted the fix/775-kernel-benchmark-path branch August 7, 2026 21:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Kernel Benchmark has not run since 2026-01-02: its path filter targets a directory that does not exist

1 participant