Skip to content

docs(spec): 010 catalog contract - #32

Merged
matbrgz merged 1 commit into
masterfrom
docs/spec-catalog-contract
Oct 12, 2026
Merged

matbrgz merged 1 commit into
masterfrom
docs/spec-catalog-contract

Conversation

@matbrgz

@matbrgz matbrgz commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator

Refs #29

Spec only (no code): docs/specs/010-catalog-contract/{spec.md,plan.md,tasks.md}.

This repo owns the catalog contract (.product CONTRACTS.md); catalog-ssg, catalog-algorithms and catalog-web-frameworks reference it.

What it defines

  • catalog.json manifest per catalog: contractVersion, test types, implementation glob, runner, metadata file/schema, index file and its --check command.
  • Implementation directory: <id>.dockerfile (exact base tag, ARG *_VERSION pins, engine inside the image), benchmark_config.json in the TechEmpower shape plus test_type, metadata validated against a BT base schema, byte-identical runner copy.
  • Mandatory untimed verification before timing; http is verified by the toolset (TechEmpower verify stage) and has no runner.
  • Generic BENCH_* markers (VERIFY_OK/FAIL, RESULT_BEGIN engine=… version=…/RESULT_END, UNSUPPORTED, …); every SSGBERK_* stays an accepted alias for all of contractVersion: 1, with markerPrefix recorded per result.
  • Test types datarate (SSG), algorithm (algorithm, n, optional dataset), http (endpoints, concurrency; interface only); --catalog/--catalog-dir, catalogs/<name>/ submodules, suites tagged by catalog and test type.
  • results.json stays schemaVersion: 2 with an optional catalog key; v3 and perfratio parsing belong to Replace hyperfine with perfratio as the measurement engine #30 / Requirements for measuring the same algorithm across many languages (catalog-algorithms) perfratio#240.
  • tools/check_catalog.py for catalog CI.

Out of scope: perfratio switch, renames (ssgberk wrapper, image names), the http load generator/verifier implementation, CA's algorithm set, changes inside catalogs.

Migration table in spec.md: catalog-ssg conforms by adding only catalog.json; its output parses exactly as today.

Note: docs/specs/ROADMAP.md is not updated here, to avoid touching existing specs; it can be updated in a follow-up.

🤖 Generated with Claude Code

Define the contract benchmark-tool owns and catalog-ssg,
catalog-algorithms and catalog-web-frameworks consume: catalog.json
manifest, implementation layout, pinned Dockerfile, byte-identical
runner, metadata base schema and index, untimed verification,
generic BENCH_* result markers with SSGBERK_* aliases, and the
datarate, algorithm and http test types.

Refs #29

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@matbrgz
matbrgz merged commit 43d0f30 into master Oct 12, 2026
6 checks passed
@matbrgz
matbrgz deleted the docs/spec-catalog-contract branch October 12, 2026 15:40
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.

1 participant