Comment Format¶ This page describes the structure and appearance of the PR comment that the action posts. Overview¶ The comment is a single GitHub Flavored Markdown body with several sections: An alert callout (WARNING, TIP, or NOTE) A summary count table Grouped benchmark tables (regressions, improvements, unchanged) A collapsible details section The raw asv-spyglass output (collapsible) Alert Callout¶ The top of the comment uses GitHub’s alert syntax to immediately signal the result: Regressions detected: > [!WARNING] > **3 benchmark(s) regressed** Only improvements: > [!TIP] > **2 benchmark(s) improved** All unchanged: > [!NOTE] > **All benchmarks unchanged** Summary Table¶ A compact count table shows the breakdown: | | Count | |---|---:| | :red_circle: Regressed | 3 | | :green_circle: Improved | 2 | | :white_circle: Unchanged | 5 | Only categories with non-zero counts are shown. Benchmark Tables¶ Regressions and Improvements¶ These are shown as full tables with emoji indicators, visible by default (not collapsed): ### Regressions | | Benchmark | Before | After | Ratio | |---|---|--:|--:|--:| | :red_circle: | `TimeSuite.time_values(10)` | 167+/-3ns | 187+/-3ns | 1.12x | Unchanged Benchmarks¶ Collapsed inside a <details> element to keep the comment compact: <details> <summary>5 unchanged benchmark(s)</summary> | Benchmark | Before | After | Ratio | |---|--:|--:|--:| | `TimeSuite.time_keys(200)` | 1.17+/-0us | 1.07+/-0us | ~0.91x | </details> Benchmark Name Shortening¶ The action shortens benchmark names for readability: Strips the benchmarks. prefix (e.g., benchmarks.TimeSuite.time_values becomes TimeSuite.time_values) Strips the environment label suffix (e.g., [rgx1gen11/conda-py3.11 -> ...] is removed) The full names are preserved in the raw output section. Details Section¶ A collapsible section with metadata: <details> <summary>Details</summary> - **Base:** `a1b2c3d4` - **Head:** `e5f6g7h8` - **Runner:** `ubuntu-22.04` - **Dashboard:** [View full results](https://...) </details> The dashboard link only appears if the dashboard-url input is provided. Raw Output¶ The original asv-spyglass output is preserved in a final collapsible section: <details> <summary>Raw asv-spyglass output</summary> ``` | Change | Before | After | Ratio | Benchmark (Parameter) | ... ``` </details> This is useful for debugging or when the parsed rendering misses something. Change Classification¶ The action classifies each benchmark row based on the change mark from asv-spyglass: Mark Classification Emoji + Regressed :red_circle: - Improved :green_circle: (space) Unchanged :white_circle: x Incomparable :grey_question: ! Failed :warning: The ~ prefix on ratio values indicates statistically insignificant changes (the benchmark likely has high variance).
Comment Format¶
This page describes the structure and appearance of the PR comment that the action posts.
Overview¶
The comment is a single GitHub Flavored Markdown body with several sections:
An alert callout (WARNING, TIP, or NOTE)
A summary count table
Grouped benchmark tables (regressions, improvements, unchanged)
A collapsible details section
The raw asv-spyglass output (collapsible)
Alert Callout¶
The top of the comment uses GitHub’s alert syntax to immediately signal the result:
Regressions detected:
Only improvements:
All unchanged:
Summary Table¶
A compact count table shows the breakdown:
Only categories with non-zero counts are shown.
Benchmark Tables¶
Regressions and Improvements¶
These are shown as full tables with emoji indicators, visible by default (not collapsed):
Unchanged Benchmarks¶
Collapsed inside a
<details>element to keep the comment compact:Benchmark Name Shortening¶
The action shortens benchmark names for readability:
Strips the
benchmarks.prefix (e.g.,benchmarks.TimeSuite.time_valuesbecomesTimeSuite.time_values)Strips the environment label suffix (e.g.,
[rgx1gen11/conda-py3.11 -> ...]is removed)The full names are preserved in the raw output section.
Details Section¶
A collapsible section with metadata:
The dashboard link only appears if the
dashboard-urlinput is provided.Raw Output¶
The original asv-spyglass output is preserved in a final collapsible section:
This is useful for debugging or when the parsed rendering misses something.
Change Classification¶
The action classifies each benchmark row based on the change mark from
asv-spyglass:Mark
Classification
Emoji
+Regressed
:red_circle:-Improved
:green_circle:(space)
Unchanged
:white_circle:xIncomparable
:grey_question:!Failed
:warning:The
~prefix on ratio values indicates statistically insignificant changes (the benchmark likely has high variance).