Version and prerelease rules
How a version text is read
Written as |
Kind |
Resolves to |
|
|---|---|---|---|
|
exact pin |
that version |
rewrites it |
|
wildcard |
the highest match |
leaves it |
|
range |
the lowest match, as NuGet does |
leaves it |
nothing |
floating |
the latest at every run |
leaves it |
Versions and ranges are parsed with NuGet.Versioning, so what NuGet accepts, fsxpired accepts.
Outdated
An exact pin is outdated when a newer version exists that it may move to. Which versions count depends on the prerelease rule:
-
A stable pin is compared against stable versions only.
1.0.0is up to date when the only newer version is1.1.0-beta. -
With
-pre/--prerelease, a stable pin is compared against everything, and-umoves it to a prerelease when that is the newest. -
A prerelease pin is always compared against everything.
8.0.0-beta-001is outdated once8.0.0-beta-002exists, and again once8.0.0exists, with no flag needed: the pin already opted in.
A range is never outdated. It is shown with what it resolves to today and the latest version that exists, so the gap is visible, and left alone.
Update
-u replaces the version text of each outdated exact pin with the version it may move to. Only
that span changes: spacing, quoting, line endings and the byte order mark stay as written. Files
reached through #load are rewritten too. The run without -u is the dry run.
fsxpired