Design 32: a package is named by its name in its own language, one name across the indexer, builder, registry seat and users
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
This commit is contained in:
@@ -482,6 +482,12 @@ complete, because a team that believes it is complete stops reviewing for the ca
|
||||
- **A package is declared as an artifact**: its name, the kind `package`, its language (`go` or `typescript`), its
|
||||
paths and its **package series** (`0.1`). An image, a bundle or an archive may declare a package series the same
|
||||
way; one that declares none is numbered in `0.1`. Nobody types a version: the builder counts it (design 51).
|
||||
- **A package is named by its name in its own language** (a design limit of the registry milestone, 2026-11-04): a
|
||||
Go package by the module path of its `go.mod`, a TypeScript package by the name in its `package.json`. The
|
||||
indexer reads that name at each merge, the builder numbers the package under it, the package's registry seat
|
||||
publishes it under it, and a user's `packages` names it so. One name per package across the mesh, because the
|
||||
language's own tools fetch by that name and no other. How it is checked: the judge refuses a name in `packages`
|
||||
that no package of the shelf is named, or that a member of the change's delivery group does not name at its head.
|
||||
- **Raising a package series** is a reviewed change of the package's manifest, for a change that breaks its users.
|
||||
The checker's verdict names every change of a package series it sees, so the review of the change sees it.
|
||||
- **A user names the mesh packages it takes in a section of its own, `packages`**, each with the package series it
|
||||
|
||||
Reference in New Issue
Block a user