Skip to content

Latest commit

 

History

History
21 lines (15 loc) · 3.24 KB

LoadPackageManifest.md

File metadata and controls

21 lines (15 loc) · 3.24 KB

LoadPackageManifest

This driver reads the .nuspec for each package on NuGet.org. This information is stored in Azure Table Storage for other drivers to use. This is an optimization to reduce the amount of data downloads from NuGet.org's public APIs in later steps.

CatalogScanDriverType enum value LoadPackageManifest
Driver implementation LoadPackageManifestDriver
Processing mode process latest catalog leaf per package ID and version
Cursor dependencies V3 package content: this driver needs the .nuspec from the package content resource
Components using driver output PackageCompatibilityToCsv: uses .nuspec and other information for compatibility calculation
PackageManifestToCsv: .nuspec metadata fields written to CSV
Temporary storage config none
Persistent storage config Table Storage:
PackageManifestTableName: .nuspec bytes stored using MessagePack and WideEntityStorageService
Output CSV tables none

Algorithm

A batch of catalog leaf items are passed to the driver. For each catalog leaf, HttpClient is used to fetch just the .nuspec from the NuGet V3 package content resource. The .nuspec bytes as provided by the package content resource are stored in Azure Table Storage as a wide entity.

The .nuspec file is the only required part of a NuGet package. It is an XML document and is sometimes referred to as the manifest.