docs: fix CHANGELOG schema-extension numbers to 50400-50404 - #80
Merged
Conversation
trendvidia
added a commit
that referenced
this pull request
Jul 17, 2026
…README layout (#115) - Umbrella #30–#35 ticked: M1 shipped June + the spec-#91/#35 catch-up landed 2026-07-17 (protocompile#66/#67/#69 closed, PRs #70–#72 + follow-ups #77–#80). - #4 round-trip box ticked: annotations.proto verified against protocompile @ 03ef9d8 (GH #58 closed) — parses clean, all 9 declarations lower into FileAnnotationDecls; fixtures 01–06, 09, 10, 12 all compile with zero diagnostics. - #5 boxes ticked; README repository-layout now lists proto/schema/v1/{annotations,descriptor,report}.proto, proto/schema/config/v1/config.proto, and the draft -01 artifacts — the missing README listing was the one genuinely unmet box.
trendvidia
added a commit
that referenced
this pull request
Jul 24, 2026
- Implementation boxes #40–#43 ticked: protocheck v2.0.0 (2026-07-23) shipped the engine SPI (PR#22), function registration + init-time verification (PR#23), and validation execution — WithFailFast (PR#21), wire-aligned EnrichedViolation model (PR#24), carrier-rule dispatch with source-map enrichment (PR#26); catalog + i18n (PR#28, M6). v2.1.0 added per-element repeated/map dispatch (PR#35). - #50–#52 ticked: protolsp shipped RFC-001 extended-grammar parsing and semantic tokens (protolsp#218 Phases A/B, 2026-07-16), source-map navigation with descriptor fallback (protolsp#219 Phase C, #220), and annotation-aware diagnostics (#220; completion parity #228, runtime-violation overlay #231). - #70 ticked: protowire-go v1.3.1 (2026-07-23) wires the Validator seam through the pxf/pb/sbe decoders (protowire-go#49/PR#59) with the protocheck-side adapter (protocheck PR#38); protovalidate adapter as nested module (PR#60), noted on #17. - M0 spec boxes #4–#7 ticked (landed via GH #54; annotations.proto round-trip verified per GH #58); #6 acceptance boxes ticked against the shipped STABILITY.md section. - #19 annotated: §5.3 executable fixtures shipped (GH #135, PR #138); corpus expansion continues in GH #68. Remaining implementation fronts: #60/#61 (protobuf-go codegen) and #80 (OpenAPI, GH #93).
trendvidia
added a commit
that referenced
this pull request
Jul 24, 2026
…dger (#146) protobuf-go PR#4 (2026-07-24, closing protobuf-go#2/#3) shipped both codegen boxes: the §9.3 function stubs (Functions interface, UnimplementedFunctions, RegisterFunctions binding typed impls to a protocheck Engine by FQN, carriers 50400/50401/50403 decoded from options' unknown fields without a schema/v1 module dependency) and the annotation-aware decoration (@description doc comments, @deprecated notices on enums/values/messages/fields/getters, function-level bracket options; byte-identical output without carriers). Example-as-test emission remains optional/deferred. With M1–M7 complete, open implementation work is #80 (OpenAPI, GH #93) plus #18/#19/#20 and per-port adoption.
This was referenced Jul 25, 2026
trendvidia
added a commit
that referenced
this pull request
Jul 25, 2026
… (#175) Resolves the three design gaps GH #93 left open for the OpenAPI boundary renderer, now that #170 (PR #174) has landed the doc pack it reads. Decision record: docs/RFC-001-issues.md §#80. Gap 1 — operation surface. @http gains four defaulted parameters: summary, operation_id, tags, security (§5.2, annotations.proto). Binding rules are pinned with them: {name} path segments bind to same-named top-level request fields; remaining fields bind to the query string for bodyless methods and to the request body otherwise; operation_id defaults to <Service>_<Method>, unique by construction; summary falls back to the first sentence of @description. tags and security take list literals of strings, because the grammar admits no repeated parameter type (§5.1 paramType ::= qualifiedIdent) — list-shaped values ride `any` plus a Literal.list (§8.1), verified against the reference parser before the text was written. Security-scheme *definitions* stay in generator config, per the §9.4/#112 argument that keeps deployment topology out of descriptors. The alternative — a generator-owned openapi.* library with zero spec involvement — was considered and not chosen; the cost is recorded rather than elided: OpenAPI vocabulary now lives in the library every port mirrors and the draft describes, and it can only grow additively. What makes it tolerable is that the parameters carry no validation semantics and impose no port obligation beyond carrying them through the §8.1 carrier. No `responses` parameter. Responses are derived — success from the return type, errors from @error_code plus §7 — and authored per-status entries would need a list of message literals: a shape the carrier represents (LiteralValue.literal) but the reference parser rejects at an annotation argument today. Specifying it would put the spec ahead of the toolchain that can express it. Gap 2 — audience/visibility tiers. Taxonomy is protowire.docs.v1.Audience (#170). Artifact filtering only, never descriptor stripping (stripping has spec implications about image completeness and needs its own pass). Tiers come from generator configuration, not a new canonical annotation, because visibility is deployment policy — same reasoning as #112 — with doc-pack topics contributing their own tier so docs and API surface cannot disagree. Transitive inconsistency (public reaching internal) is an error: a dangling $ref or a silently inlined restricted definition are both worse than refusing. Gap 3 — availability version. x-since is derived from protoregistry history, omitted when no registry is configured. No canonical @SInCE is added: an authored availability claim is unverifiable and nothing would check it, while the registry already knows. Additive throughout: the v1.2.0 two-argument @http keeps its meaning and no existing schema changes shape, pinned by new fixture 21_http_operation.proto, which compiles the bare form beside fully parameterized uses. No grammar production, extension number, wire, or report change.
trendvidia
added a commit
that referenced
this pull request
Jul 25, 2026
The deferral's parser precondition closed (trendvidia/protocompile#127 -> #128; corpus pinned by #176 / PR #178), leaving demand — and none exists. Records the decision in RFC-001-issues.md §#80: derived-only stands, and the deferral converts into a principled bar (authored per-status responses are unverifiable claims, per the Gap-3 @SInCE and #112 @Encrypted reasoning). A future proposal needs a concrete consumer, with a narrow defaulted scalar preferred over an authored per-status vocabulary. No normative spec change: §5.2 already carries no responses parameter and its §#80 rationale pointer is unchanged.
trendvidia
added a commit
that referenced
this pull request
Jul 25, 2026
The deferral's parser precondition closed (trendvidia/protocompile#127 -> #128; corpus pinned by #176 / PR #178), leaving demand — and none exists. Records the decision in RFC-001-issues.md §#80: derived-only stands, and the deferral converts into a principled bar (authored per-status responses are unverifiable claims, per the Gap-3 @SInCE and #112 @Encrypted reasoning). A future proposal needs a concrete consumer, with a narrow defaulted scalar preferred over an authored per-status vocabulary. No normative spec change: §5.2 already carries no responses parameter and its §#80 rationale pointer is unchanged.
trendvidia
added a commit
that referenced
this pull request
Jul 26, 2026
…ge + doc pack (#173) (#183) Implements RFC-001 §#80 (M8) as decided: `pxf openapi` renders byte-stable OpenAPI 3.1 YAML/JSON from a `pxf build` image and an optional `pxf docs build` pack. JSON/YAML exist only at the emission edge (binding format principle); the internal model is the image's §8.1 carriers, decoded dynamically like every other pxf artifact. Schema half: messages/enums/§8.2 aliases → FQN-keyed components/schemas; alias chains compose via allOf and fields $ref their alias (attribution via the §8.3 source map — expanded alias annotations are matched by declaration location and never double-emitted); mappable @Validate shapes → pattern, minLength/maxLength/minItems/maxProperties, enum, minimum/maximum/exclusive*; everything else carried through under x-validation; @description/@deprecated/@example/@default/@required → counterparts; §6.1 presence → nullability; §6.7 sensitive minima (no values or examples; x-sensitive markers). Operation half (§5.2): {name} path binding, query-vs-body by method, operation_id/summary defaults, tags/security (dangling scheme name = error). Responses derived, never authored (#177): 200 from return type, default from the §7 Report rendered through the same mapper, reachable violation codes under x-error-codes. Audience (Gap 2): tiers from protowire.openapi.textproto FQN globs (new protowire.openapi.v1.GeneratorConfig, dynamic-only like docs/v1), restricted further by doc-pack topics anchoring an element; --audience filters, never strips; a closure reaching a more restricted element fails generation naming both ends. docpack.AudienceRank is the exported single taxonomy ordering. x-since (Gap 3): derived from protoregistry history (first version containing the element) when coordinates are configured, omitted otherwise. schemaresolve: bundled accessors learn the canonical "protowire/X" → proto/X aliasing (report.proto imports descriptor.proto that way). Fixtures in testdata/openapi/ (renderer-owned, not cross-port conformance); tests pin the mapping arms, both formats' byte stability, --check, audience filtering, the transitive error, and the pack tier contribution. README + CHANGELOG + §#80 record updated.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
One-line correction. The
50100→50400schema-extension canonicalization (#78) landed everywhere —STABILITY.md,proto/schema/v1/descriptor.proto, the RFC-001 spec, the IETF draft, the umbrella and issue scaffolds — exceptCHANGELOG.md, whose edit was dropped in a merge conflict with #79 (which also touched CHANGELOG).This brings the CHANGELOG entry in line:
50400–50499sub-range, carriers at50400–50404, with the SBE-collision note.After this,
git grepfinds no stale schema-extension50100–50104references onmain(the only remaining5010xmentions are the legitimate SBE allocations and explanatory comments about why the numbers moved).