Repository navigation
feat(registry): 独立原生发行、v2 契约与历史迁移 - #58
Merged
Merged
Conversation
This was referenced Oct 12, 2026
added 2 commits
October 13, 2026 16:06
撤回原生格式承诺、迁移和安装升级保护;保留原有 prepare/public 契约。\n发布检查全部关联和不可变产物,提交前重新核对检查集合;补齐缺 MF 与并发关联变更回归。
added 6 commits
October 13, 2026 19:11
使用 v2 精确 Python 分发读取、显式参与状态存储以及下载/应用边界;启用不再修改共享 Python 环境。源码与 wheel import 已验证,整个 Registry/Web gate 仍等待配套 Core SDK 0.4。
由 Changesets 生成 0.4.0,固定 Core SDK 0.4 实际 package 输入;按 v2 读取 MF 版本、持久化本 Peer 选择并报告真实运行状态。Node 22 下类型、构建和 HTTP boundary 检查通过;整个 Registry gate 与真实宿主验收仍待集成。
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Registry 原有统一
(name, version)发行让 Python 与 Web 分发共用生命周期,无法表达各 Peer 独立选择原生版本。本变更采用 v2(name, distribution, version):生产者只准备并发布自己的分发,发布前验证该分发全部对象,并在事务提交前重新检查文件身份。历史数据库向前迁移保留文件、R2 key、原生元数据、旧 URL 与文档 receipt。v1 只读历史统一发行,旧控制写入返回 410,新原生发行不进入旧目录。未知历史 global 文档继续留在旧 owner;旧入口状态保守投影,不能绕过原生封禁。Toolkit 0.5、Python Runtime 0.2、Web Runtime 0.4 提供独立原生与本 Peer 参与模型,并由现有机械版本工具生成版本。
验证:完整
pnpm check通过;额外使用非空 0004 数据库回放验证历史文件/文档身份,真实 HTTP 验证 Python 1.0 与 MF 2.0 独立发布、缺对象拒绝、发布检查期间新增文件返回 409、旧写 410、严格历史 DTO 与分发独立封禁。真实 wheel 隔离安装、SDK import/HTTP 边界与 v2 静态 MF facade 已通过。生产迁移和正式 SDK 发布尚未执行。合并到 main 会触发
packages-release.yml:受 production 环境保护、核验 current-main 后发布缺失的 Toolkit 0.5、Python Runtime 0.2、Web Runtime 0.4 GitHub Release 及包资产;不会自动部署 Registry 服务。production.yml仅手动触发,verify不修改远程资源,获准的deploy才迁移既有生产数据库、配置既有 app 并发布镜像。0005/0006 改变分发关联的数据库身份,旧镜像不能与迁移后 schema 并行使用;生产切换应暂停 publisher、停止旧 web dyno,再执行精确 current-main 部署及读写边界验收。控制器在任何数据库/config/release 变更前强制 web quantity=0,且完整 dyno 列表中无存活旧 web;非零 formation、idle/starting/up/未知状态或不完整列表都拒绝,且不自动停机或回滚。阶段日志带 app 与目标 SHA,migration/release 失败不扩容;smoke 失败明确发生于新镜像已启动之后。现有执行边界验证这些拒绝、失败及目标镜像成功启动顺序。跨仓候选使用固定 Git package 与真实 pack 做有界验收;不宣称已建立独立公共 SDK artifact 交付层。可信 preview 控制器来自 main,新建 v2 preview 的 seed 需同步 v2 入口。Web Runtime 的恢复只消费持久 enabled 意图,显式启停命令先保存意图再串行清理资源。异步加载和初始化后重新检查精确版本与 enabled,撤回或变更时清理迟到模块,不登记 running;真实打包入口验证加载中停用、初始化中停用、独立客户端撤回/变 pin、shutdown 与另一 Peer 保持独立。
本次候选准入例外:维护者 label
coordinated-sdk-version-preparation允许同 PR 包含上述机械版本准备与功能代码。CI 由 PR metadata 显式传入--allow-feature-version-preparation,添加/移除 label 都重新检查。它仅解除行为路径分类禁令;默认无 label 保持严格规则,版本/changelog 一致、版本前进、已消费 fragments、所有测试与发布权威均保留。CLI 黑盒验证涵盖默认拒绝、允许候选、残留 fragment、版本倒退与 changelog 不一致拒绝。