Description
Group all equal-precedence SemVer spellings while ignoring build metadata and retaining original indexes; no lexicographic or numeric-only substitution.
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 all equal-precedence SemVer spellings while ignoring build metadata and retaining original indexes; no lexicographic or numeric-only substitution.
When to use this tool
Use this tool to group all equal-precedence SemVer spellings while ignoring build metadata and retaining original indexes; no lexicographic or numeric-only substitution.
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.groups. Use the ordering, boundary rules and absence conditions described below.
Compare parsed versions and group original indexes whose precedence is equal. Return groups in order of first appearance.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.groups | First-seen groups of original indexes tied by SemVer precedence. |
{
"input": {
"versions": [
"1.0.0+a",
"1.0.0+b",
"1.0.0-alpha"
]
},
"output": {
"result": {
"groups": [
[
0,
1
],
[
2
]
]
}
}
} Limitations and assumptions
- Versions with different build metadata can belong to the same precedence group.
- 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 Precedence Tie Groups — tool.io
Similar or alternative tools
- Semantic Version Release Lane Groups
Group explicit versions into major.minor release lanes with source indexes; a caller-defined grouping, not stability or API compatibility certification.
- Semantic Version Build Record Extractor
Extract SemVer build identifiers as literal strings, preserving numeric-looking leading zeros without adding precedence meaning.