-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Registry Spec #366
Labels
Comments
LGTM! 😄 Not sure how much value that itself is, but the overall direction makes sense. |
This all looks great! 👏 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue tracks writing the registry spec across a complete table of contents. Current progress:
The untitled first 1-2 paragraphs, which explain what the registry is and what major concepts the spec will cover.
A longer summary of the registry, why it came to exist, its high-level design. Akin to the introduction to a book (in spirit, not in length!).
A simple walkthrough of how a package is published, possibly including diagrams. Includes example JSON payloads going through the registry
Addition
operation, an example of the input manifest, the output metadata and package sets entry. All extremely minimal, but giving a sense of the data interchange beginning with the package manager and ending with the registry metadata, index, and storage backend.Types alone can't capture the set of invariants applied to data processed by the registry, so this section provides the full set of rules for common data types.
A section specifying how the registry should relate to other infrastructure and the responsibility of that infrastructure as it relates to the registry.
The big section! This builds on everything provided so far and summarizes the role of the API and its major operations. Each operation is detailed along with its failure modes.
Summarizes what operations the registry will take after a package is added / published, transferred, or unpublished. This section could be folded back into the previous section, but I worry that doing so would make that section too long and unfocused.
A section summarizing the aliasing solution used to support alternate backends, along with a status note stating that this is currently un-implemented.
Specifies how package managers should relate to the registry, ie. open a GitHub issue with a payload according to the
Operation
data type, get package information fromregistry-index
, download packages from the storage backend, etc.Policies followed by the registry (trustees, name squatting, package sets)
Note that this spec is just one of several documents we should provide to registry users, including:
registry-dev
, intended for registry developers & related development (package managers, package sets consumers, etc.)registry
, intended for package authors who want to know the broad concepts of the registry and package sets (though they should largely defer to their package manager)registry
trustees
document listing out the Registry trustees, located inpurescript/governance
and managed by the core teamroadmap
document, located inregistry-dev
, which lists out items that are in the spec but not yet implementedThis issue only concerns the registry spec. It doesn't include information better located in other documents (e.g. a step-by-step guide to publishing packages).
Second, this is a draft table of contents only. I'd like to get to consensus on what the spec should include and then tackle it section-by-section. Once there's consensus this issue can become a tracking issue.
The text was updated successfully, but these errors were encountered: