dev vendor

Obtain this repository's declared library dependencies and its repo adapter from the catalogs it reads

Command version
0.0.0
Command configuration
dev-tool:dev.vendor@0.0.0

Arguments

ArgumentTypeRequiredDefaultDescription
--check, --no-checkbooleanNofalseReport what is missing without writing anything
--recurse, --no-recursebooleanNofalseVendor in every repository this one pins as a kind: repository module as well, each as that repository's own vendor in its own checkout and all of them at once, which is the second half of carrying a change in a producer to its consumers after build --libraries-only --recurse. Every repository is run even when one fails, and each failure names the repository it came from. With --check it checks every checkout instead. It crosses repositories and says nothing about dependencies: each run follows the dependencies of what it vendors with or without it

It also takes the global arguments.

Output

It answers with a vendor.vendorResult.

Types

vendor.vendorResult

FieldTypeRequiredDefaultDescription
vendoredlist[vendor.vendoredLibrary]No[]Each library a catalog holds among those the repository declares and those they depend on: unpacked by a plain run, and under --check found and compared with nothing written
adaptervendor.vendoredAdapterNoThe repo adapter copied into this repository's generated adapter catalog. Absent where the manifest names none, where the catalog is one the repository tracks -- the checkout that develops the adapter -- and where no store answered, which is reported as an error.
missinglist[coordinate]No[]Coordinates no catalog this repository reads holds
undeclaredRequirementslist[string]No[]Third-party packages a vendored tree needs and this repository does not declare. The half of a closure that cannot be followed: these are installed by a language's own package manager rather than unpacked, so the publisher records what it needed and the consumer is told what it has missed -- instead of meeting it as an ImportError in a tree it only fetched.
orphanedlist[string]No[]Directories under the vendor directory that no declared coordinate accounts for. A dependency dropped from the declaration is never visited again, so the tree it left stays -- and stays importable, ahead of this repository's own packages, as a dependency nothing declares. Reported rather than removed: a package may declare a placement a consumer also keeps its own things in, and deciding what in such a directory was ours is the question the .vendored record answers per package rather than per directory.
stalelist[string]No[]Coordinates whose unpacked tree is behind what the catalog holds. A vendored tree is a snapshot, and nothing said when the thing it was taken from had moved on -- inside this tree that happens on any edit to a producer, and the stale copy keeps working until the two disagree. Reported by --check, which writes nothing and so has the comparison as its whole answer.
behindSourcelist[vendor.catalogBehindSource]No[]Catalog entries whose source has moved on since they were built. A copy compared with its catalog cannot see this: a merge that was never rebuilt leaves a catalog every vendored copy matches while all of them are behind, which is how vendor --check passed three retirements over library changes nothing had published. Reported by --check from the source record an archive carries, and only where the directory it names is there to read.
requirementsOutOfDatebooleanNofalseWhether the generated requirements file this repository's language keeps is behind what the fetched trees say they need. The other half of a closure reaches a consumer's package manager as a file the adapter renders and this command writes; under --check nothing is written, so the comparison is the whole answer, and a difference is a repository whose environment would come up short of the source it vendored.
unresolvedImportslist[string]No[]Imports a vendored package makes of itself that its unpacked tree does not hold, each as <coordinate>: <file>: <module>. An archive can register, unpack and look well-formed while its package imports a module the archive does not carry, and the import error then arrives in whatever process first imports it -- far from the publish that left the module out. The repo adapter reads the imports, because which statements import and how a module maps to a file are facts about a language.
pinnedRepositorieslist[string]No[]What each pinned repository's own vendor answered, under the checkout it ran in, when the run was asked to --recurse. Its own output rather than its result, because each is a separate run of this command whose result is that repository's, and a failure among them is an error of this run naming the repository.
isCompletebooleanYesWhether every declared dependency was found and unpacked

vendor.vendoredLibrary

FieldTypeRequiredDefaultDescription
coordinatecoordinateYesThe dependency that was asked for, as namespace:name@version
vendorPathpathYesThe directory its source was unpacked into, relative to the repository root -- the vendorPath the entry or its producer named, or lib/<the directory its publisher roots it at>
catalogpathYesThe catalog it was found in

vendor.vendoredAdapter

FieldTypeRequiredDefaultDescription
coordinatecoordinateYesThe adapter that answered, as namespace:name@version
keystringYesThe key it is filed under: the source state of a build, or the version of a release
catalogpathYesThe repository's own adapter catalog it was copied into
sourcepathYesThe store it was copied from: a build catalog for a build, an adapter catalog for a release

vendor.catalogBehindSource

FieldTypeRequiredDefaultDescription
coordinatecoordinateYesThe coordinate whose catalog entry is behind
catalogpathYesThe catalog holding the entry
sourcepathYesThe module root the entry was archived from, which no longer holds what it archived