From aced03a287a4ed72e2e34faca6c4125dbef628c7 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 4 Nov 2026 14:46:30 +0100 Subject: [PATCH] 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 --- 03-DESIGN/01-to-be/32-what-a-module-declares.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/03-DESIGN/01-to-be/32-what-a-module-declares.md b/03-DESIGN/01-to-be/32-what-a-module-declares.md index 9d51cd8f..322035fd 100644 --- a/03-DESIGN/01-to-be/32-what-a-module-declares.md +++ b/03-DESIGN/01-to-be/32-what-a-module-declares.md @@ -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