Skip to content

Results age silently: no run date and no framework version on the board #1196

Description

@nigrosimone

Every number on the board is published without a date and without the version of the framework it
was measured with. Today nothing is very old, so it does not hurt yet, but in a year a row measured
once and never re-run will look exactly like a fresh one. What is missing now cannot be recovered
later, so I think it is worth adding before it is needed.

1. Record the run date and the measured version

Both have to be written when the benchmark runs, in save_result() (scripts/benchmark.sh), inside
the result JSON. The date cannot be taken from git history: #1034 rewrote the results layout on
2026-07-24 and 66 of the 157 entries still point at that commit, so git log gives the migration
date and not the run.

The version should be read from the image that was measured, not from the manifest. The manifest is
not reliable today: 11 Dockerfiles still use latest or no tag (#471), and 13 of the 14
package.json entries use ^ ranges with no lockfile and npm install, so two builds of the same
commit are not the same versions. A small build step that writes the resolved version into the image
is honest also for an entry that is not pinned.

2. Show it, and mark old rows

version | measured <date> on the row, and a row older than about 12 months marked as stale (greyed
out, or a badge). A per-round date is not enough: entries are re-run one at a time, so the current
round already mixes measurements months apart. It would also help the timeline app of #357, which
today has to guess when a result changed.

3. Later: automatic dependency bumps

A bot PR per outdated dependency, like dependabot. The cheap half already exists: validate.yml
runs on frameworks/** and proves the entry still builds and passes, and if it fails we look at it
and fix the implementation. The expensive half is the re-measure: one runner, collaborator approval,
hours per run. So the bot should batch per language (/benchmark-multiple, #1084) and the run stays
a maintainer decision. One rule to keep: the published version must change only when a benchmark
really ran, otherwise the board would claim a version that was never measured.

Metadata

Metadata

Assignees

No one assigned

    Labels

    platformEverything related to benchmark exection, including the PR workflow.websiteUX improvements, questions and bugs

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions