Skip to content

M1 — Envelope + serializer re-baseline + RBS scaffolding #10

@nficano

Description

@nficano

Goal

Envelope + serializer re-baseline + RBS scaffolding. Speak v1.0 wire (draft-02 §5.1) before any message class is touched.

Scope

  • Reduce Arcp::Envelope from 19 fields to the §5.1 set (lib/arcp/envelope.rb)
  • Flip Arcp::PROTOCOL_VERSION from '1.0' to '1' (lib/arcp/version.rb)
  • Rename Arcp::JsonArcp::Serializer; add backend= setter for opt-in oj
  • Reject unknown arcp values; ignore unknown top-level keys per §5.1
  • W3C 32-hex trace_id validation
  • Ruby floor: >= 3.3.0 (arcp.gemspec); TargetRubyVersion: 3.3 (.rubocop.yml)
  • Drop json_schemer from gemspec
  • Add bigdecimal ~> 3.1, opentelemetry-api ~> 1.5 to gemspec runtime deps
  • Add async-rspec ~> 1.17, rbs ~> 3.6, steep ~> 1.9, mutant to dev group
  • Enable SimpleCov.enable_coverage :branch + 87% line+branch floor
  • Create sig/ directory; write RBS for Arcp::Envelope, Arcp::Serializer, Arcp::Trace
  • Add Steepfile with public-surface allowlist
  • Regenerate envelope fixtures from spec §13
  • EnvelopeSpec updated to assert §5.1 shape

Spec §

§5.1, §11, §13

Gate

bundle exec rake (rspec + rubocop) green; bundle exec steep check green on the new sig files; coverage ≥ 87% on the touched files. No v1.1 features touched yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions