release(v0.13.2): ReqIF interchange completeness + export polish#334
Merged
Conversation
Ships the three contained findings from the v0.13.1 export-format end-to-end test, fixes a pre-existing date-bomb test, and files the remaining findings as tracked REQs. Implemented (REQ-102/103/104): - ReqIF export now emits a SPECIFICATION + SPEC-HIERARCHY document tree (one SPEC-HIERARCHY per SPEC-OBJECT, referencing a SPECIFICATION-TYPE). Importers (DOORS/Polarion/codeBeamer) need this to render a navigable outline; some reject a hierarchy-less file. Object/relation payload unchanged — round-trip preserved. - `rivet import-results --format reqif <file>` brings a ReqIF file back into rivet artifacts (DOORS/Polarion round-trip was export-only; parse_reqif existed but was reachable only via the supplier-pull cache). Reports artifact + link counts. - `gherkin` now advertised in `rivet export --help` + the unsupported-format error message (was accepted but undocumented). Test stabilisation: - cited_source_integration::check_sources_strict_audit_gate hardcoded a `last-checked` date that aged past the 30-day staleness threshold, flipping the "clean fixture passes" assertion to fail once >30 days elapsed. The fixture now generates a fresh ISO-8601 timestamp at test time (inline civil-date algorithm, no chrono/jiff dep). Tests added (regression guards): - rivet-core: test_export_emits_specification_hierarchy, test_reqif_roundtrip_preserves_artifacts_and_links. - rivet-cli: export_reqif_roundtrip.rs — export --help lists gherkin; export reqif has SPECIFICATION + SPEC-HIERARCHY; import-results --format reqif round-trips artifacts + links via the binary. Filed for the next minor (not implemented here — regression-risk / different subsystem): - REQ-105 HTML export absolute-link decoupling from the serve module. - REQ-106 serve variant view passes --binding (bound_artifact_count: 0). - REQ-107 sequence/mapping field values render as Debug output. - REQ-108 serve external-artifact navigation + shortcut-link contrast. - REQ-109 variant scoping for documents (design question). Full workspace test suite green. Implements: REQ-102, REQ-103, REQ-104 Refs: REQ-005, REQ-007 Verifies: REQ-102, REQ-103, REQ-104 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
📐 Rivet artifact delta
Graphgraph LR
REQ_102["REQ-102"]:::added
REQ_103["REQ-103"]:::added
REQ_104["REQ-104"]:::added
REQ_105["REQ-105"]:::added
REQ_106["REQ-106"]:::added
REQ_107["REQ-107"]:::added
REQ_108["REQ-108"]:::added
REQ_109["REQ-109"]:::added
classDef added fill:#d4edda,stroke:#28a745,color:#155724
classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Added
Posted by |
There was a problem hiding this comment.
⚠️ Performance Alert ⚠️
Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.
| Benchmark suite | Current: 6f15d5d | Previous: 1ebd25e | Ratio |
|---|---|---|---|
validate/10000 |
19313842 ns/iter (± 1673446) |
15202058 ns/iter (± 1741822) |
1.27 |
This comment was automatically generated by workflow using github-action-benchmark.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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
Ships the three contained findings from the v0.13.1 export-format end-to-end test, fixes a pre-existing date-bomb test, and files the rest as tracked REQs. Driven by
/pulseengine-feature-loop(traceability leads → oracle-gated code+tests → release).Implemented (v0.13.2)
rivet import-results --format reqif <file>brings a ReqIF file back into rivet artifacts.parse_reqifexisted in rivet-core but was reachable only via the supplier-pull cache, so the DOORS/Polarion round-trip was export-only.gherkinnow advertised inrivet export --help+ the unsupported-format error (was accepted but undocumented).Test stabilisation
cited_source_integration::check_sources_strict_audit_gatehardcoded alast-checkeddate that aged past the 30-day staleness threshold — the "clean fixture passes" assertion started failing once >30 days elapsed (pre-existing, surfaced now). Fixture generates a fresh ISO-8601 timestamp at test time.Regression guards added
test_export_emits_specification_hierarchy,test_reqif_roundtrip_preserves_artifacts_and_links.export_reqif_roundtrip.rs—--helplists gherkin; exported ReqIF has SPECIFICATION + SPEC-HIERARCHY;import-results --format reqifround-trips via the binary.Filed for next minor (NOT implemented here)
href="/artifacts/X", no.html) → broken static/sub-path navbound_artifact_count: 0(doesn't self-pass--binding)DebugTest plan
cargo test --workspace— green (60 result-groups, 0 failures)rivet validate— PASSrivet docs check— PASSImplements: REQ-102, REQ-103, REQ-104
🤖 Generated with Claude Code