Description
Audit repeated strict SemVer spellings exactly, distinct from equal-precedence build-metadata alternatives.
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
Audit repeated strict SemVer spellings exactly, distinct from equal-precedence build-metadata alternatives.
When to use this tool
Use this tool to audit repeated strict SemVer spellings exactly, distinct from equal-precedence build-metadata alternatives.
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.duplicates. Use the ordering, boundary rules and absence conditions described below.
Validate each version, then group exact duplicate input strings and return only groups with more than one index.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.duplicates | Exact repeated version strings with their original occurrence indexes. |
{
"input": {
"versions": [
"1.0.0+a",
"1.0.0+a",
"1.0.0+b"
]
},
"output": {
"result": {
"duplicates": [
{
"key": "1.0.0+a",
"indexes": [
0,
1
]
}
]
}
}
} Limitations and assumptions
- Equal precedence with different spelling is not an exact duplicate.
- 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 Duplicate Spelling Audit — tool.io
Similar or alternative tools
- Semantic Version Build Record Extractor
Extract SemVer build identifiers as literal strings, preserving numeric-looking leading zeros without adding precedence meaning.
- Semantic Version Build Metadata Replacement
Replace SemVer build identifiers while preserving strict core/prerelease fields; new metadata is validated but has no precedence effect.