blob: d9a3a1d384b9d87ec1e4b572359a1490c7b3e82e [file] [log] [blame]
package gps
// sourceExistence values represent the extent to which a project "exists."
type sourceExistence uint8
const (
// ExistsInVendorRoot indicates that a project exists in a vendor directory
// at the predictable location based on import path. It does NOT imply, much
// less guarantee, any of the following:
// - That the code at the expected location under vendor is at the version
// given in a lock file
// - That the code at the expected location under vendor is from the
// expected upstream project at all
// - That, if this flag is not present, the project does not exist at some
// unexpected/nested location under vendor
// - That the full repository history is available. In fact, the
// assumption should be that if only this flag is on, the full repository
// history is likely not available (locally)
//
// In short, the information encoded in this flag should not be construed as
// exhaustive.
existsInVendorRoot sourceExistence = 1 << iota
// ExistsInCache indicates that a project exists on-disk in the local cache.
// It does not guarantee that an upstream exists, thus it cannot imply
// that the cache is at all correct - up-to-date, or even of the expected
// upstream project repository.
//
// Additionally, this refers only to the existence of the local repository
// itself; it says nothing about the existence or completeness of the
// separate metadata cache.
existsInCache
// ExistsUpstream indicates that a project repository was locatable at the
// path provided by a project's URI (a base import path).
existsUpstream
)