Skip to content

Main content

SemVer Release Lane Groups

Group explicit versions into major.minor release lanes with source indexes; a caller-defined grouping, not stability or API compatibility certification.

Loading tool…

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

  1. Enter versions using the field definitions below.
  2. Run the operation. Correct input errors before interpreting an output.
  3. 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 fieldMeaning and unitsAccepted input
versionsSemantic-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 fieldInterpretation
resultObject containing the named fields below.
result.lanesFirst-seen major.minor lanes with the member or tied-maximum indexes described above.
json
{
  "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

  1. Semantic Versioning 2.0.0 — Semantic Versioning

  2. 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.