Skip to content

feat(base): publish the minimum supported version of dart - #7790

Merged
viceice merged 1 commit into
mainfrom
viceice/feat/dart-min-version
Oct 14, 2026
Merged

viceice merged 1 commit into
mainfrom
viceice/feat/dart-min-version

Conversation

@viceice

@viceice viceice commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Changes

Publishes the minVersion of dart in the tool metadata: 2.0.0. The install already rejects older majors, and 2.0.0 has the required .sha256sum.

Container-tested on jammy, noble and resolute: dart 2.0.0 installs, dart --version reports it and a script runs. The CLI behaviour doesn't change; rejecting older versions is #7772.

Context

Please select one of the following:

  • This closes an existing Issue, Closes: #
  • This doesn't close an Issue, but I accept the risk that this PR may be closed if maintainers disagree with its opening or implementation

AI assistance disclosure

Did you use AI tools to create any part of this pull request?

Please select one option and, if yes, briefly describe how AI was used (e.g., code, tests, docs) and which tool(s) you used.

  • No — I did not use AI for this contribution.
  • Yes — minimal assistance (e.g., IDE autocomplete, small code completions, grammar fixes).
  • Yes — substantive assistance (AI-generated non‑trivial portions of code, tests, or documentation).
  • Yes — other (please describe):

Claude Opus 5.5 (Claude Code) checked and container-tested the version and wrote the change and test, reviewed by @viceice.

Use of AI in replying to PR comments

Who answers review comments:

  • @viceice will read and reply directly. Name the account.
  • An agent will draft replies and @username will read them before they are posted. Name the account.
  • An agent will draft replies and reply autonomously. This is heavily discouraged, and we prefer that there are humans in the loop
  • Nobody has explicitly committed to replying.

Documentation (please check one with an [x])

  • I have updated the documentation, or
  • No documentation update is required

How I've tested my work (please select one)

I have verified these changes via:

  • Code inspection only, or
  • Newly added/modified tests

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Updates
    • Dart installations now require version 2.0.0 or later. Older versions are no longer accepted.

Co-Authored-By: Claude Opus 5.5 <michael.kriese+claude-code@mend.io>
@viceice
viceice enabled auto-merge October 14, 2026 11:45
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Publish Dart 2.0.0 as the minimum supported version

✨ Enhancement 🕐 10-20 Minutes

Grey Divider

AI Description

• Publish Dart 2.0.0 as the minimum supported version in base tool metadata.
• Declare the limit on Dart’s install service, matching its existing rejection of older major
 versions.
• Extend the base metadata test to cover Dart’s minimum version.
Diagram

graph TD
  D["Dart install service"] --> L["Tool discovery"] --> G["Metadata generator"] --> T["Typed tool catalog"] --> V["Metadata test"]
  G --> J["JSON tool catalog"]
Loading
High-Level Assessment

Declaring the limit on the install service and publishing both generated catalogs follows the existing single-source metadata flow. A metadata-only declaration would leave the service and generated catalogs out of sync.

Files changed (4) +6 / -2

Enhancement (3) +5 / -2
tools.jsonPublish Dart’s minimum version in JSON +1/-1

Publish Dart’s minimum version in JSON

• Adds Dart 2.0.0 to the JSON tool metadata consumed from the base package.

packages/base/data/tools.json

data.tsExpose Dart’s minimum version in typed metadata +1/-1

Expose Dart’s minimum version in typed metadata

• Adds the same minimum version to the generated TypeScript tool catalog.

packages/base/src/data.ts

index.tsDeclare the Dart install service’s minimum version +3/-0

Declare the Dart install service’s minimum version

• Sets the service’s minimum version to 2.0.0, consistent with its existing rejection of versions below major 2.

src/cli/tools/dart/index.ts

Tests (1) +1 / -0
base.spec.tsCheck Dart’s published minimum version +1/-0

Check Dart’s published minimum version

• Adds Dart 2.0.0 to the expected minimum-version entries in the base metadata test.

test/packages/base.spec.ts

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: containerbase/coderabbit/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 4bed4751-3c85-4406-bbf6-741dbf8f6a23
📥 Commits

Reviewing files that changed from the base of the PR and between 293457f and 87ab3bf.

📒 Files selected for processing: 4
  • packages/base/data/tools.json
  • packages/base/src/data.ts
  • src/cli/tools/dart/index.ts
  • test/packages/base.spec.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📝 Walkthrough

The Dart tool now declares a minimum version of 2.0.0 in its metadata and install service. The package test expectation includes this minimum version.

Changes: Dart minimum version

Layer / File(s) Summary
Declare and verify Dart minimum version
src/cli/tools/dart/index.ts, packages/base/data/tools.json, packages/base/src/data.ts, test/packages/base.spec.ts
The Dart install service and tool metadata specify a minimum version of 2.0.0. The package test expectation includes the same version.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 87ab3

The change publishes Dart 2.0.0 as its minimum supported version. The installer contract and generated metadata agree, with no concrete merge-blocking risk identified.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: publishing Dart's minimum supported version.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

📎 Requirement gaps (1)

Grey Divider


View low (1)
Informational
1. Older Dart releases pass validation 📎 Requirement gap
Description
DartInstallService publishes minVersion but inherits BaseInstallService.validate(), which only
checks whether the requested version is valid and never compares it with the minimum. Requests below
2.0.0 can therefore pass validation without a minimum-version error, even though the later install
path only rejects versions whose major is below 2.
Code

src/cli/tools/dart/index.ts[R44-45]

+  /** The install rejects older majors, 2.0.0 is container tested. */
+  override readonly minVersion = '2.0.0';
Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Dart now publishes a `2.0.0` minimum, but the base validation path does not enforce published minimum metadata before installation. This allows unsupported versions to pass validation and does not provide the required minimum-version rejection message.

## Fix Focus Areas
- src/cli/tools/dart/index.ts[44-45]
- src/cli/install-tool/base-install.service.ts[128-132]
- src/cli/install-tool/install-tool.service.ts[120-127]

## Recommended Fix
Update the shared validation flow to compare each requested version with the service's `minVersion` using the tool's versioning scheme, reject versions below the minimum with an error that names the minimum, and add Dart coverage for below-minimum and supported versions.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗


Grey Divider

Tip of the day
💡 Did you know, you can switch off images and animations for a plain-text comment

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@viceice

viceice commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

On the Qodo findings: both are intentional and tracked in #7772.

The verified minimums, with their reasons and per-release floors, are collected in #7772 (comment).

Drafted by Claude Opus 5.5 (Claude Code) for @viceice.

@viceice
viceice added this pull request to the merge queue Oct 14, 2026
Merged via the queue into main with commit 4c03d07 Oct 14, 2026
61 checks passed
@viceice
viceice deleted the viceice/feat/dart-min-version branch October 14, 2026 16:14
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 14.38.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

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