feat!: add partial version selector resolution - #200
Conversation
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #200 +/- ##
==========================================
+ Coverage 87.11% 87.57% +0.45%
==========================================
Files 25 26 +1
Lines 1677 1771 +94
==========================================
+ Hits 1461 1551 +90
- Misses 216 220 +4 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
|
Warning Review limit reached
Next review available in: 5 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
Summary by CodeRabbit
WalkthroughChangesThe install flow now resolves incomplete stable version selectors to concrete releases. Stable selector installation
Possibly related PRs
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 |
There was a problem hiding this comment.
Actionable comments posted: 2
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 1e00ad02-8a29-42f0-8b64-70938a5c1c67
📒 Files selected for processing (10)
.agents/adr/0003-incomplete-stable-version-selectors.md.agents/handoff/issue-189-incomplete-version-selector.mdCONTEXT.mdsrc/cli/install.rssrc/toolchain/atomic.rssrc/toolchain/index.rssrc/toolchain/mod.rssrc/toolchain/version.rstests/integration/atomic.rstests/integration/package.rs
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
There was a problem hiding this comment.
Pull request overview
Adds support for resolving incomplete numeric stable-version inputs (e.g. 0, 0.10, 0.10.1) into a concrete stable release during moonup install, while retaining the original user input for diagnostics.
Changes:
- Introduces a stable-selector resolver (
src/toolchain/version.rs) and wires it into install-recipe construction. - Extends
InstallRecipeto carry both the effective install identity (spec) and the original user request (requested_spec). - Updates install flow, atomic recovery recipe construction, tests, and glossary/agent docs to reflect the new selector semantics.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/integration/package.rs | Updates recipe construction in integration tests to include requested_spec. |
| tests/integration/atomic.rs | Adds coverage ensuring recovery recipes preserve requested_spec while using a concrete effective spec. |
| src/toolchain/version.rs | New stable-selector detection + resolution logic with unit tests. |
| src/toolchain/mod.rs | Exposes the new toolchain::version module. |
| src/toolchain/index.rs | Adds requested_spec to InstallRecipe and resolves stable selectors during recipe building. |
| src/toolchain/atomic.rs | Ensures recovery recipe construction uses a concrete spec when the request was a stable selector. |
| src/cli/install.rs | Logs selector resolution and prints/install using the effective concrete spec. |
| CONTEXT.md | Adds glossary entries for “Version selector” and “Resolved release” and updates examples. |
| .agents/handoff/issue-189-incomplete-version-selector.md | Handoff documenting the agreed contract and implementation seams for issue #189. |
| .agents/adr/0003-incomplete-stable-version-selectors.md | ADR capturing rationale/constraints for selector resolution and identity semantics. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
Signed-off-by: Chawye Hsu <su+git@chawyehsu.com>
An improved design to address #189 , replace and close #190
This would be a BRAKING CHANGE, as it will surprise users that
0.10.0can now be resolved to a concrete release.