Repository navigation
Handle invalid package versions and compare complete semver - #450
Merged
Merged
Conversation
This was referenced Oct 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PackageManifest.hasUpdate()could throw for installed versions such as1.2orunknown, and for empty/non-string repository metadata. It also split valid dotted prerelease/build metadata as though it were a legacy fourth version component.Validate full semver before using the exact four-component legacy fallback. Unsupported input returns the existing unknown (
null) result; incomplete versions are not coerced or guessed. Preserve numeric/lexical legacy suffix comparisons and the missing-installed-version result.Concrete ordering corrections:
1.2.3+build.2versus installed1.2.3+build.1now returns false: build metadata does not establish a newer version.1.2.3-beta.2.2versus installed1.2.3-beta.2.1now returns true, comparing the complete prerelease identifiers.Validation:
npm test: 176 tests passed across 15 files.npm run ng -- build --configuration=development: passed (existing browser-support/Sass warnings).git diff --check: passed.No UI changes or live repository/TV test; comparisons were exercised directly with representative metadata fixtures.
Integration validation: #449, #450, and #451 apply together without conflicts; all 213 combined headless tests pass. A current public repository snapshot with 56 packages passes the combined page validation and same-version comparison checks.