Skip to content

What is the significance of "specification" of index format/API? #4574

Closed
@withoutboats

Description

@withoutboats

In the alt registries RFC, @carols10cents specified the format that a registry index takes. I remember that we made a conscious choice to specify the index format, but not to specify the API that crates.io uses for publishing, yanking, etc.

I'm unclear, however, what it really means to specify these things. It seems to be about a level of service we provide and a level of expectation we put on maintainers of alt registries, but we haven't really nailed down what that means.

Here are some things I think this could maybe mean:

  • Does this mean we will maintain accurate documentation of the parts of the interface we've specified (but not necessarily other parts)?
  • Does this mean we require that all registries conform to the specified parts, but not the unspecified parts (i.e. if this were an IETF spec we would be using MUST for the index, but only SHOULD or MAY for the api parts).
  • Does this mean we should not implement features that depend on the "unspecified" parts of the interface (e.g. we should not make it easier to cargo publish to alternative registries, since that requires them to support the unspecified API)?
  • Or rather, restating the previous bullet, specifying a part of the interface is a necessary prerequisite toward generalizing a workflow that is built on top of that interface?

Probably, there are other significances this distinction could have to people that haven't occurred to me.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions