Publish experimental packages with explicit private exceptions
默认发布实验性包并保留显式私有例外
An allowlist for public experimental packages requires a policy edit whenever a new installable prototype joins the repository. Experimental status describes compatibility and support expectations, but internal-only prototypes still need an explicit publication exclusion.
English
Problem
An allowlist for public experimental packages requires a policy edit whenever a new installable prototype joins the repository. Experimental status describes compatibility and support expectations, but internal-only prototypes still need an explicit publication exclusion.
Decision
The local npm baseline publisher and the public dsh release family discover experimental packages by default. PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES owns explicit private exclusions. The denylist is empty, so all current experimental packages publish.
Every experimental directory outside the denylist is public by default. Workspace constraints require public packages to omit private and set publishConfig.access: public; all experimental packages retain the @deepseek-ai/dsh-experimental-* npm prefix. Adding a private prototype requires a denylist entry as well as its private manifest.
This decision supersedes the private publication default in the Agent Teams package decision. Its dependency isolation, opt-in composition, engineering requirements, and promotion rules remain active. Publication grants neither stability nor a support promise.
Alternatives considered
Retain a public allowlist. Every new public experimental package needs another policy entry, even though the default publication path can discover it.
Publish every experimental package immediately. This would expose the existing internal-only prototypes. An explicit private denylist changes the default for new packages while preserving their current publication status. The archived publication decision records their subsequent publication.
Consequences
New experimental packages join both npm publication paths without an allowlist edit. Private exceptions have one shared owner, and workspace validation rejects manifests that disagree with it.
中文
问题
公开实验性包的允许列表要求每个新加入仓库的可安装原型都修改一次策略。实验性状态描述兼容性与支持预期,但内部专用原型仍需要显式排除发布。
决策
本地 npm baseline 发布器与公开 dsh 发布系列默认发现实验性包。PRIVATE_EXPERIMENTAL_PACKAGE_DIRECTORIES 负责显式私有排除项。拒绝列表为空,因此所有当前实验性包都参与发布。
拒绝列表以外的每个实验性目录默认公开。workspace 约束要求公开包省略 private 并设置 publishConfig.access: public;所有实验性包保留 @deepseek-ai/dsh-experimental-* npm 前缀。添加私有原型需要拒绝列表条目及其私有 manifest(元数据清单)。
本决策取代 Agent Teams 包决策中的默认私有发布原则。该决策的依赖隔离、显式启用组合、工程要求与 promotion 规则继续生效。发布不提供稳定性或支持承诺。
曾考虑的替代方案
保留公开允许列表。 即使默认发布路径能够发现新公开实验性包,每个包仍需要额外的策略条目。
立即发布所有实验性包。 这会暴露现有的内部专用原型。显式私有拒绝列表改变新包的默认策略,同时保留这些原型的当前发布状态。已归档的发布决策记录了这些包后来的发布。
后果
新实验性包无需修改允许列表即可加入两条 npm 发布路径。私有例外有一个共享 owner,workspace 校验会拒绝与之不符的 manifest。