Skip to content

tooling: run the conformance suite without Docker#192

Merged
iainmcgin merged 1 commit into
mainfrom
tooling/conformance-local
Jun 16, 2026
Merged

tooling: run the conformance suite without Docker#192
iainmcgin merged 1 commit into
mainfrom
tooling/conformance-local

Conversation

@iainmcgin

Copy link
Copy Markdown
Collaborator

What this does

Adds a Docker-free path for running the protobuf conformance suite. The Docker path needs the GHCR tools image (or a local image build) plus a daemon, which some dev environments don't have. conformance_test_runner drives the testee over stdin/stdout pipes, so nothing actually requires a container.

  • scripts/build-conformance-tools.sh (task conformance-tools-local): native equivalent of Dockerfile.tools — builds conformance_test_runner from the pinned protobuf tag into .local/bin/ and populates conformance/protos/ with the same proto set. One-time, ~10–20 min.
  • scripts/run-conformance-local.sh (task conformance-local): native equivalent of run-conformance.sh — cargo-builds the std/no_std conformance binaries and executes the same seven runs (std, no_std, via-view, via-lazy, view-json, via-reflect, via-vtable) with the same failure lists and CONFORMANCE_OUT logging.

No runtime or codegen changes; CONTRIBUTING gains a "Without Docker" section.

Why now

This is the verification rig for the upcoming 0.8.0 generated-code-readability PRs — it lets each one be conformance-checked in environments without Docker, instead of relying solely on the CI conformance job.

How we know it works

task conformance-tools-local builds the runner cleanly from source; the full seven-run suite was executed against main + the first readability PR via these scripts (logs captured with CONFORMANCE_OUT). markdownlint clean on the CONTRIBUTING change.

@github-actions

github-actions Bot commented Jun 12, 2026

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

The Docker path needs the private GHCR tools image (or a local image
build) plus a Docker daemon — unavailable in some dev environments.
conformance_test_runner drives the testee over stdin/stdout pipes, so
nothing actually requires a container:

- scripts/build-conformance-tools.sh (task conformance-tools-local):
  native equivalent of Dockerfile.tools — pre-installs jsoncpp, builds
  conformance_test_runner from the pinned protobuf tag into .local/bin/
  (host-linked; the image's -static is only needed for distribution),
  and populates conformance/protos/ with the same proto set.
- scripts/run-conformance-local.sh (task conformance-local): native
  equivalent of run-conformance.sh + the image build — cargo-builds the
  std/no_std conformance binaries and executes the same seven runs
  (including via-lazy) with the same failure lists and CONFORMANCE_OUT
  logging.
@iainmcgin iainmcgin force-pushed the tooling/conformance-local branch from 84fe4e7 to 1d9e840 Compare June 12, 2026 21:30
@iainmcgin iainmcgin marked this pull request as ready for review June 16, 2026 13:59
@iainmcgin iainmcgin requested a review from kollektiv June 16, 2026 13:59
@iainmcgin iainmcgin enabled auto-merge June 16, 2026 14:39
@iainmcgin iainmcgin added this pull request to the merge queue Jun 16, 2026
Merged via the queue into main with commit 55ef135 Jun 16, 2026
7 checks passed
@iainmcgin iainmcgin deleted the tooling/conformance-local branch June 16, 2026 14:52
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 16, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants