Skip to content

Latest commit

 

History

History
78 lines (65 loc) · 11.2 KB

PackageVersions.md

File metadata and controls

78 lines (65 loc) · 11.2 KB

PackageVersions

This table has parsed information about each package version, as well as it's "latest" status within each respective package ID. This table allows you to reason about SemVer order of package versions without having native SemVer ordering or parsing support in your data or query system.

This table also acts as a helpful snapshot of data that is only available in the last package details catalog leaf, such as listed status and last edited date. This information is not available in the NuGet package file (.nupkg) itself.

Cardinality Exactly one per package on NuGet.org
Child tables
Parent tables
Column used for CSV partitioning LowerId
Column used for Kusto partitioning Identity
Key fields Identity
Data file container name packageversions
Driver PackageVersionToCsv
Record type PackageVersionRecord

Table schema

Column name Data type Required Description
ScanId string No Unused, always empty
ScanTimestamp timestamp No Unused, always empty
LowerId string Yes Lowercase package ID. Good for joins
Identity string Yes Lowercase package ID and lowercase, normalized version. Good for joins
Id string Yes Original case package ID
Version string Yes Original case, normalized package version
CatalogCommitTimestamp timestamp Yes Latest catalog commit timestamp for the package
Created timestamp Yes, for Available When the package version was created
ResultType enum Yes Type of record (e.g. Available, Deleted)
OriginalVersion string Yes, for Available Original package version, non-normalized
FullVersion string Yes, for Available Full version string, normalized but can include SemVer 2.0.0 build metadata
Major int Yes Major version number, this is the first digit
Minor int Yes Minor version number, this is the second digit
Patch int Yes Patch version number, this is the third digit
Revision int Yes Revision version number, this is the fourth digit, defaults to 0
Release string Yes, for IsPrerelease Prerelease label of the version string, this is after the hyphen and before any plus
ReleaseLabels array of strings Yes, for IsPrerelease The components of the Release columns, split by dots
Metadata string No The build metadata component, this is after any plus, it is not used for comparison
IsPrerelease bool Yes Whether or not the version is prerelease, implied by non-empty Release column
IsListed bool Yes, for Available Whether or not this version is listed, impacts "latest" status
IsSemVer2 bool Yes, for Available Whether or not this package is SemVer 2.0.0, impacts "latest" status
SemVerType flags enum Yes, for Available What part of the package metadata made it SemVer 2.0.0, if at all
SemVerOrder int Yes Within this package ID, what is the position (0-based index) of the versions sorted in SemVer order
IsLatest bool Yes Whether this package is the latest listed, stable or prerelease, SemVer 1.0.0 package
IsLatestStable bool Yes Whether this package is the latest listed, stable, SemVer 1.0.0 package
IsLatestSemVer2 bool Yes Whether this package is the latest listed, stable or prerelease, SemVer 1.0.0 or SemVer 2.0.0 package
IsLatestStableSemVer2 bool Yes Whether this package is the latest listed, stable, SemVer 1.0.0 or SemVer 2.0.0 package
Published timestamp Yes, for Available When the package version was published, which is approximately when it was last moved to the listed state or initially created
LastEdited timestamp Yes, for Available When the package version was last edited, which can when it was reflowed, listed, unlisted, or otherwise changed on NuGet.org

ResultType schema

The ResultType enum indicates the possible variants of records.

Enum value Description
Available The package is available and processed successfully
Deleted The package is deleted and no metadata is available

ReleaseLabels schema

The ReleaseLabels column is an array strings where each item in the array is a piece of the Release column split by dots. If the package is not prerelease (and therefore has no value for the Release column), the ReleaseLabels array will be entirely missing instead of empty.

SemVerType schema

The SemVerType enum has one or more of the the following values. It is formatted by separating the values by a comma and a space.

Enum value Description
DependencyMaxHasBuildMetadata The package is SemVer 2.0.0 because the dependency version range maximum has build metadata
DependencyMaxHasPrereleaseDots The package is SemVer 2.0.0 because the prerelease label of a dependency version range maximum has dots
DependencyMinHasBuildMetadata The package is SemVer 2.0.0 because the dependency version range minimum has build metadata
DependencyMinHasPrereleaseDots The package is SemVer 2.0.0 because the prerelease label of a dependency version range minimum has dots
SemVer1 The package is SemVer 1.0.0
VersionHasBuildMetadata The package is SemVer 2.0.0 because there is build metadata
VersionHasPrereleaseDots The package is SemVer 2.0.0 because the prerelease label has dots