Skip to content

feat(cli): variant subcommand — check, list, solve with bindings#141

Merged
avrabe merged 1 commit intomainfrom
feat/variant-cli
Apr 13, 2026
Merged

feat(cli): variant subcommand — check, list, solve with bindings#141
avrabe merged 1 commit intomainfrom
feat/variant-cli

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented Apr 13, 2026

Summary

Wires the feature model + constraint solver into usable CLI commands:

rivet variant list --model examples/variant/feature-model.yaml
rivet variant check --model examples/variant/feature-model.yaml \
  --variant examples/variant/eu-adas-c.yaml
rivet variant solve --model examples/variant/feature-model.yaml \
  --variant examples/variant/eu-adas-c.yaml \
  --binding examples/variant/bindings.yaml
  • Feature tree visualization with group type labels
  • Constraint propagation: bare feature names in s-expressions auto-wrapped
  • Binding resolution: lists bound artifact IDs per variant
  • Project scope check: reports which bound artifacts exist in the store

Implements: REQ-042, REQ-043, REQ-044, REQ-046

🤖 Generated with Claude Code

New CLI commands for product line variant management:
  rivet variant list --model feature-model.yaml
  rivet variant check --model feature-model.yaml --variant eu-adas-c.yaml
  rivet variant solve --model fm.yaml --variant v.yaml --binding bindings.yaml

Features:
- Feature tree visualization with group labels
- Constraint propagation with feature name preprocessing
- Binding resolution showing bound artifact IDs
- Project scope validation (which bound artifacts exist)
- JSON output format for all commands
- Example files in examples/variant/

Implements: REQ-042, REQ-043, REQ-044, REQ-046
Refs: FEAT-110, FEAT-111, FEAT-112, FEAT-113

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ 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: fb891c1 Previous: 9db1988 Ratio
store_insert/10000 13685076 ns/iter (± 470102) 11389034 ns/iter (± 602574) 1.20
link_graph_build/10000 29758608 ns/iter (± 4712174) 23949147 ns/iter (± 1257918) 1.24
query/10000 146291 ns/iter (± 971) 111959 ns/iter (± 1208) 1.31

This comment was automatically generated by workflow using github-action-benchmark.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 13, 2026

Codecov Report

❌ Patch coverage is 93.87755% with 3 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
rivet-core/src/feature_model.rs 93.87% 3 Missing ⚠️

📢 Thoughts on this report? Let us know!

@avrabe avrabe merged commit 5a590dc into main Apr 13, 2026
17 of 20 checks passed
@avrabe avrabe deleted the feat/variant-cli branch April 13, 2026 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant