Skip to content

conformance: add check-decode --format pb-text so the cross-port text gate runs Python #37

Closed
trendvidia/protowire
#590

Description

@bfrancojr

Problem

The cross-port text gate (scripts/cross_text_check.sh in protowire) lists python in NOT_YET. Python has no check-decode --format pb-text, so nobody checks the PXF that pxf.marshal writes against protowire-go's goldens in testdata/text/cases/. This issue is #35's twin: #35 covers the write gate, this one the text gate.

Python's marshaller is protowire-cpp's. cpp is held to the gate already, including the Annotated cases since cpp#129 (protowire c48fcc0). So once the pin is on v2.0.0 (#31), a pb-text mode should pass with little or no bridge work. That is inferred, not measured.

Harness constraint (shared with #35)

check_decode.py reads a .binpb descriptor set next to --proto, because Python cannot compile a .proto. Only testdata/adversarial ships one. The text and write gates pass --proto testdata/text/text.proto, which has no .binpb. The harness needs to build one, for example with protoc --include_imports when the file is missing. Or the spec repo ships one. (In this session's probe, protoc -I . -I proto --include_imports built working sets for nulls/ and keyed/.)

Done when

  • check_decode.py --format pb-text reads PB with the stock runtime and writes pxf.marshal's text on stdout.
  • cross_text_check.sh runs Python with no new exclusions, or each exclusion has an issue.
  • A protowire PR moves python out of NOT_YET and into the text workflow's REQUIRE_PORTS.

Activity

  1. bfrancojr commented on Nov 7, 2026

    @bfrancojr
    CollaboratorAuthor

    Harness half: #49 (check_decode --format pxf-pb / pb-text). Gate half: trendvidia/protowire#590 (draft until #49 merges) runs Python in the write, text and security gates and adds it to each workflow's REQUIRE_PORTS. Measured locally: write 87/87 and text 60/60 for Python with no exclusions, security 136/136. This closes when #590 merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions