Complete schema and JUnit contracts - #10
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (17)
Summary by CodeRabbit
WalkthroughThe package adds bundled workflow and suite JSON Schemas, schema discovery APIs, deterministic JUnit XML reporting, strict JSON output comparison, and CLI support. Documentation, package data, tests, and CI smoke checks cover the new behavior. ChangesSchema contracts and discovery
Strict comparison and JUnit serialization
CLI and public API integration
Documentation and release status
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant CLI
participant SchemaAPI
participant SchemaJSON
CLI->>SchemaAPI: request selected schema
SchemaAPI->>SchemaJSON: load bundled JSON
SchemaJSON-->>SchemaAPI: schema object
SchemaAPI-->>CLI: return schema dictionary
CLI->>CLI: print sorted JSON
sequenceDiagram
participant CLI
participant Suite
participant Serializer
participant XML
CLI->>Suite: run workflow tests
Suite->>Suite: compare expected and actual output
Suite-->>CLI: SuiteResult
CLI->>Serializer: convert SuiteResult
Serializer->>XML: create sanitized report
XML-->>CLI: emit JUnit XML
Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
samsarix-spirals schemaCLIsamsarix-spirals test --junitWhy
The contract-suite milestone needed portable editor/CI integration before expanding the workflow language. Bundled schemas make the file formats discoverable without a hosted service, while JUnit lets existing CI systems ingest contract results without a proprietary dashboard. Both preserve the zero-runtime-dependency and no-code-execution boundaries.
Impact
Existing workflows, suites, commands, and JSON reports remain compatible.
--jsonand--junitare mutually exclusive. JUnit output contains only names and fixed mismatch categories; fixture inputs and outputs are not disclosed. External schema validation is structural and does not replace bounded runtime validation.Verification
Draft202012Validator.check_schemaLocal artifact SHA-256 evidence:
91E604E0AB1114997821AB01215861E6FBF6F7B484C7FB62081B1D40F3B12E8CCDE6F07CCFABE5F3ABDF0A7E73CA0B6662485EF28B6CED96D9BD0A750B02EAC7