Skip to content

v0.19.0

Choose a tag to compare

@trendvidia trendvidia released this 24 Jul 04:23
b97c1cf

What's Changed

  • Public report.proto bindings: Report, Violation, and ExecutionMode are now generated into github.com/trendvidia/protocompile/gen/protowire/schema/v1 (package schemav1, alongside the descriptor carriers, vendored at protowire 2fcc218) — for engines producing wire Reports (RFC-001 goal-5 report equality, §6.6 rule 6 gRPC adapters) and tooling consuming them (#111, fixes #108)
  • Map per-element carrier: a map field whose value type is a type alias now expands the alias's rules onto the map field's own AnnotationList — base-to-derived ahead of field-site entries, exactly like repeated element aliases — plus a bare-path TYPE_REFINEMENT entry whose location points at the value-type name inside map<K, V> (#112, fixes #109). Descriptor-shape change vs v0.18.0: these rules previously lowered onto the synthetic entry's value field (…Entry.value[…] paths); that emission is gone. Key-type alias rules deliberately remain on the synthetic entry's key field, where they stay distinguishable from per-value rules
  • Typed map_entry: synthetic map-entry messages now carry options.map_entry = true as the typed field instead of unknown-field bytes, so in-memory reflection consumers (protodesc.NewFile IsMap classification, protoreflect map accessors, dynamicpb) see a map without a wire round-trip; wire encoding is unchanged (#113, fixes #110). Other user-written options intentionally remain unknown-bytes-encoded in memory — see #114 for that contract discussion. protocheck can drop its re-add-map_entry post-processing workaround after bumping

Full Changelog: v0.18.0...v0.19.0