Description
Group explicit versions into major.minor release lanes with source indexes; a caller-defined grouping, not stability or API compatibility certification.
Semantic versions have a major.minor.patch core, optional prerelease identifiers after a hyphen, and build identifiers after a plus. Prereleases precede the corresponding release; build metadata does not affect precedence. A textual spelling, an equal-precedence group and a major.minor release lane therefore answer different questions.1
Group explicit versions into major.minor release lanes with source indexes; a caller-defined grouping, not stability or API compatibility certification.
When to use this tool
Use this tool to group explicit versions into major.minor release lanes with source indexes; a caller-defined grouping, not stability or API compatibility certification.
How to use the tool and how it works
- Enter versions using the field definitions below.
- Run the operation. Correct input errors before interpreting an output.
- Read result.lanes. Use the ordering, boundary rules and absence conditions described below.
Group parsed versions by the textual major.minor lane and return their original indexes in first-seen lane order.2
| Input field | Meaning and units | Accepted input |
|---|---|---|
| versions | Semantic-version strings in the source order to inspect. | Dense list of at most 128 strings, each at most 8,192 UTF-16 code units. |
| Output field | Interpretation |
|---|---|
| result | Object containing the named fields below. |
| result.lanes | First-seen major.minor lanes with the member or tied-maximum indexes described above. |
{
"input": {
"versions": [
"1.0.0",
"1.0.1",
"1.1.0"
]
},
"output": {
"result": {
"lanes": [
{
"lane": "1.0",
"indexes": [
0,
1
]
},
{
"lane": "1.1",
"indexes": [
2
]
}
]
}
}
} Limitations and assumptions
- Patch and suffixes do not affect lane membership.
- Version text is limited to 1,024 UTF-16 code units with no whitespace. Parsed core and numeric prerelease components must be nonnegative safe integers. Range expressions and a leading v are not accepted.
- Every declared top-level input field is required and unexpected fields are rejected. Ordinary strings are limited to 8,192 UTF-16 code units and lists to 128 entries, with tighter operation-specific bounds where stated. JSON text has bounded nesting and node counts.
- Numeric outputs must be finite and no larger in absolute magnitude than the safe-integer limit; operations returning exact large integers use decimal text. Positions are zero-based and spans end exclusively unless the operation explicitly states a different convention.
Alternative or Complementary methods
Choose whether you need exact spelling, precedence or a release-lane grouping. Use a separate package manager or compatibility review for dependency resolution and release-policy decisions.
References
-
Semantic Versioning 2.0.0 — Semantic Versioning
-
Tool behavior and example: Semantic Version Release Lane Groups — tool.io
Similar or alternative tools
- Semantic Version Lane Maxima
Return all equal-precedence maxima in each explicit major.minor SemVer lane, preserving build ties instead of arbitrarily choosing a release.
- Semantic Version Precedence Tie Groups
Group all equal-precedence SemVer spellings while ignoring build metadata and retaining original indexes; no lexicographic or numeric-only substitution.