Skip to content

feat(base): add the minimum supported version per Ubuntu release - #7789

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

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

Conversation

@viceice

@viceice viceice commented Oct 14, 2026

Copy link
Copy Markdown
Member

Changes

Adds an optional distroMinVersion to the tool metadata: the oldest supported version per Ubuntu release (jammy, noble, resolute), only for releases whose floor differs from minVersion. minVersion is the floor on noble, which the default image is built from.

  • php: { resolute: '8.1.31' }, the resolute prebuilds start there, there are none for 7.x and 8.0.
  • swift: { resolute: '6.4.0' }, the first release with Ubuntu 26.04 builds.

The other tools have the same floor on all three releases. The CLI behaviour doesn't change; the per-release checks are part of #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 Sonnet 5.5 and Claude Opus 5.5 (Claude Code) researched the versions and wrote the changes, docs and tests, 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

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

coderabbitai Bot commented Oct 14, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 1 minute.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: containerbase/coderabbit/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 7ba0bc36-d1b6-4e54-b810-28fea2132acf
📥 Commits

Reviewing files that changed from the base of the PR and between 293457f and 0085da2.

📒 Files selected for processing: 14
  • packages/base/README.md
  • packages/base/data/tools.json
  • packages/base/data/tools.schema.json
  • packages/base/src/data.ts
  • packages/base/src/index.ts
  • packages/base/src/schema.ts
  • packages/base/src/types.ts
  • src/cli/install-tool/base-install.service.ts
  • src/cli/install-tool/index.spec.ts
  • src/cli/install-tool/index.ts
  • src/cli/tools/php/index.ts
  • src/cli/tools/swift.ts
  • src/cli/utils/types.ts
  • test/packages/base.spec.ts
  • 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

PR Summary by Qodo

Add Ubuntu-specific minimum versions to tool metadata

✨ Enhancement 🧪 Tests 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Publish Ubuntu-specific version floors for PHP and Swift where Resolute differs from the Noble
 baseline.
• Extend tool metadata schemas, types, and listings without changing installation behavior.
• Document the new field and test its validation and published values.
Diagram

graph TD
  PHP["PHP installer"] --> Service["Installer metadata"] --> Listing["Tool listing"] --> Metadata["Base metadata"] --> Consumers["Package consumers"]
  Swift["Swift installer"] --> Service
  Schema["Metadata schema"] --> Metadata
Loading
High-Level Assessment

Keep release-specific floors optional and sourced from installer services, alongside the existing minVersion. This preserves the Noble baseline, limits overrides to actual differences, and fits the existing tool-data generation path; changing installation checks belongs in the follow-up work.

Files changed (14) +123 / -13

Enhancement (11) +77 / -6
tools.jsonPublish PHP and Swift Resolute floors +8/-2

Publish PHP and Swift Resolute floors

• Adds Resolute minimum versions of 8.1.31 for PHP and 6.4.0 for Swift to the published JSON tool catalog.

packages/base/data/tools.json

tools.schema.jsonDescribe distroMinVersion in the JSON schema +10/-0

Describe distroMinVersion in the JSON schema

• Allows an optional object keyed by supported Ubuntu codenames, with string version values.

packages/base/data/tools.schema.json

data.tsExpose Resolute floors in TypeScript tool data +2/-2

Expose Resolute floors in TypeScript tool data

• Adds the PHP and Swift Resolute overrides to the base package's TypeScript catalog.

packages/base/src/data.ts

index.tsExport the Ubuntu codename type +6/-1

Export the Ubuntu codename type

• Makes DistroCode available from the base package's main type exports.

packages/base/src/index.ts

schema.tsValidate optional release-specific floors +10/-0

Validate optional release-specific floors

• Adds a Zod Ubuntu codename enum and an optional partial record of version strings to tool metadata.

packages/base/src/schema.ts

types.tsType Ubuntu-specific tool metadata +10/-0

Type Ubuntu-specific tool metadata

• Defines DistroCode and adds an optional partial codename-to-version record to ToolMetadata.

packages/base/src/types.ts

base-install.service.tsAllow installer services to declare release floors +8/-0

Allow installer services to declare release floors

• Adds an optional distroMinVersion property to the shared installer-service contract.

src/cli/install-tool/base-install.service.ts

index.tsInclude release floors in supported-tool listings +14/-1

Include release floors in supported-tool listings

• Adds the optional field to SupportedTool and copies declared overrides from installer services into listSupportedTools results.

src/cli/install-tool/index.ts

index.tsDeclare PHP's Resolute minimum +3/-0

Declare PHP's Resolute minimum

• Records 8.1.31 as the first supported PHP prebuild version on Resolute.

src/cli/tools/php/index.ts

swift.tsDeclare Swift's Resolute minimum +3/-0

Declare Swift's Resolute minimum

• Records 6.4.0 as the first Swift release with Ubuntu 26.04 builds.

src/cli/tools/swift.ts

types.tsDefine supported Ubuntu codenames for the CLI +3/-0

Define supported Ubuntu codenames for the CLI

• Adds a DistroCode union for typing installer-service and supported-tool metadata.

src/cli/utils/types.ts

Tests (2) +38 / -0
index.spec.tsVerify Swift's floor appears in tool listings +5/-0

Verify Swift's floor appears in tool listings

• Extends the supported-tools assertion to expect Swift's Resolute override.

src/cli/install-tool/index.spec.ts

base.spec.tsTest release-floor schema and catalog values +33/-0

Test release-floor schema and catalog values

• Checks codename type parity, accepted and rejected metadata shapes, and the PHP and Swift overrides in published tool data.

test/packages/base.spec.ts

Documentation (1) +8 / -7
README.mdDocument release-specific minimum versions +8/-7

Document release-specific minimum versions

• Explains distroMinVersion, its supported Ubuntu codenames, and its relationship to the Noble minVersion baseline.

packages/base/README.md

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

📎 Requirement gaps (1)

Grey Divider


Remediation recommended

1. PHP and Swift floors lack documentation 📎 Requirement gap
Description
The new distroMinVersion values for PHP and Swift are stored in metadata, while the documentation
only defines the field without listing either tool's concrete minimum versions. Readers consulting
the supported-tool documentation therefore cannot discover the resolute floors or compare them
with the general minimums.
Code

packages/base/data/tools.json[R58-60]

+    "php": {
+      "minVersion": "7.4.0",
+      "distroMinVersion": { "resolute": "8.1.31" }
Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The PR adds concrete per-release minimum versions for PHP and Swift, but the supported-tool documentation does not list those values.

## Fix Focus Areas
- packages/base/data/tools.json[58-60]
- packages/base/data/tools.json[77-79]
- packages/base/README.md[44-53]
- docs/tools.md[1-120]

## Recommended Fix
Update the relevant tool documentation to list PHP's general minimum `7.4.0` and `resolute` minimum `8.1.31`, plus Swift's general minimum `5.7` and `resolute` minimum `6.4.0`. Keep the metadata field description aligned with the documented values.

ⓘ 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
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Oct 14, 2026
@viceice
viceice added this pull request to the merge queue Oct 14, 2026
Merged via the queue into main with commit b8cfb79 Oct 14, 2026
61 checks passed
@viceice
viceice deleted the viceice/feat/distro-min-version branch October 14, 2026 17:53
@github-actions

Copy link
Copy Markdown

🎉 This PR is included in version 14.39.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