Repository
Abstract repository operations.
protocol Repository
Browse conforming typesThis interface provides access to an abstracted representation of a repository which is ultimately owned by a RepositoryManager
. This interface is designed in such a way as to provide the minimal facilities required by the package manager to gather basic information about a repository, but it does not aim to provide all of the interfaces one might want for working with an editable checkout of a repository on disk.
The goal of this design is to allow the RepositoryManager
a large degree of flexibility in the storage and maintenance of its underlying repositories.
This protocol is designed under the assumption that the repository can only be mutated via the functions provided here; thus, e.g., tags
is expected to be unchanged through the lifetime of an instance except as otherwise documented. The behavior when this assumption is violated is undefined, although the expectation is that implementations should throw or crash when an inconsistency can be detected.