From c4cf214422997ded631ae5825f53829db6214e7a Mon Sep 17 00:00:00 2001 From: David Schoch Date: Thu, 4 Jun 2026 19:37:35 +0200 Subject: [PATCH] fix: install touchstone R package version that encodes branch slashes Benchmark comments rendered with an empty results table for any PR whose head branch contains a "/" (e.g. feat/print-style-modern). The receive action installs the {touchstone} R *package* from `touchstone_ref`, which defaults to `@v1` -- a tag cut before the upstream fix that percent-encodes filesystem-unsafe characters in branch names. Without it, records are written to records//feat/print-style-modern, the slash nests a directory, and benchmark_analyze() can't find a benchmark with exactly the base+head branches, so it discards them all ("Ignoring all benchmarks that don't have exactly those two branches") and emits only the header/footer. Pin touchstone_ref to the same commit the action wrapper already uses, which includes branch_encode()/branch_decode(). Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/touchstone-receive.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/touchstone-receive.yaml b/.github/workflows/touchstone-receive.yaml index 70cfe4ed28..26bf65ea04 100644 --- a/.github/workflows/touchstone-receive.yaml +++ b/.github/workflows/touchstone-receive.yaml @@ -63,6 +63,13 @@ jobs: cache-version: 1 benchmarking_repo: ${{ matrix.config.benchmarking_repo }} benchmarking_ref: ${{ matrix.config.benchmarking_ref }} - benchmarking_path: ${{ matrix.config.benchmarking_path }} + benchmarking_path: ${{ matrix.config.benchmarking_path }} force_upstream: true r-version: ${{ matrix.config.r }} + # Install the {touchstone} R package from the same commit as the + # action above. The default ('@v1') predates the fix that encodes + # filesystem-unsafe characters in branch names, so head branches with + # a "/" (e.g. feat/foo) get stored as a nested records//feat/foo + # directory; benchmark_analyze() then can't match base+head and + # silently drops every benchmark, producing an empty results table. + touchstone_ref: "@7e6072a25d1f8d72649188bc711113039ef94b75"