Repository navigation
test: the floor of the ICU version takes a version with more parts than it has - #47323
Conversation
process.versions.icu on macOS is what the system's ICU reports, and u_versionToString can print four parts. Bun.semver.order throws on a fourth. No machine is known to report one: macOS 26.7.1 reports 78.1.
|
Updated 12:05 AM PT - Oct 29th, 2026
@Jarred-Sumner, your commit b60fa72 is building: |
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
ICU version comparison test/js/node/process/process.test.js |
The test compares the first two components of process.versions.icu with the minimum version. A comment explains the component-count rule and semver handling of missing components. |
Possibly related PRs
- oven-sh/bun#47314: Raises the ICU minimum in the same test and upgrades bundled ICU to 79.1.
- oven-sh/bun#47281: Raises the ICU minimum in the same test and upgrades bundled ICU to 79.1.
Suggested reviewers: dylan-conway
Priority:
Merge Risk: 
Minimal · up to b60fa
-
The test accommodates longer ICU version strings without changing production behavior. No actionable merge-blocking risk is identified.
Pre-merge checks: 
4
- 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.
Comment @coderabbitai help to get the list of available commands.
Bun.semver.order reads a missing part as the highest, so 72.1 is 72.1.MAX and 72.1.0 is below it. With three parts kept, 72.1.0.1 against a floor of 72.1 still failed.
Follow-up to a review comment on #47281.
ICU version does not regresshandsprocess.versions.icutoBun.semver.order. On macOS the version is what the system's ICU reports, andu_versionToStringcan print three or four parts. The test beside it already allows for that (/^\d+\.\d+(\.\d+)*$/). Two things go wrong then:Bun.semver.orderthrows on a fourth part.72.1is72.1.MAX, and72.1.0is below it.The floors have two parts, so the comparison now takes the first two parts of the version.
72.178.1(macOS 26.7.1)74.2.0.1Invalid SemVer: 74.2.0.172.1.0.1Invalid SemVer: 72.1.0.172.1.071.9.9.9Invalid SemVer: 71.9.9.9No machine is known to report more than two parts, so nothing fails today.