CesiumJS 月度发布火车:发布排期表、负责人轮换机制及其与发布流程的衔接

CesiumJS 月度发布火车:发布排期表、负责人轮换机制及其与发布流程的衔接 CesiumJS 月度发布火车发布排期表、负责人轮换机制及其与发布流程的衔接【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium本文围绕 CesiumJS 仓库中的发布排期文件 ReleaseSchedule.md 展开完整解读该文件记录的 2025 年 11 月至 2026 年 12 月的月度发布排期表结合 CesiumJS Release Guide 说明每月第一个工作日发版的排期规则、社区共享发布职责release ownership的轮换设计以及如何从仓库当前状态版本号文件、CHANGES.md 变更记录验证排期表的实际执行情况。一、排期表在 CesiumJS 发布体系中的定位CesiumJS 的发布流程集中维护在 ReleaseGuide 目录下该目录由三份文档构成Release Schedule本文主体ReleaseSchedule.md记录即将到来的每次月度发布及其负责开发者release managerPatch Release GuidePatchReleases/README.md说明在正式发布之外如何提前发布补丁版本如出现重大回归或已发布依赖版本出现问题时Prerelease GuidePrereleases/README.md说明如何在正式发布之前发布带 dist-tag 的预发布版本通常用于内部测试。排期表本身非常精简就是一张日期 负责人的映射表。它的价值不在于文档篇幅而在于它是整个发布体系的操作入口任何一位 committer 都可以领取某个月份的发布职责排期表就是这次交接的公开记录。二、完整的月度发布排期2025-11 至 2026-12以下为 ReleaseSchedule.md 中的全部排期条目完整保留原文档的 14 个月度发布计划并补充了星期信息依据日期推算经逐一核验均为工作日排期日期星期负责开发者2025-11-03周一jjspace2025-12-01周一mzschwartz52026-01-05周一mzschwartz52026-02-02周一ggetz2026-03-02周一jjhembd2026-04-01周三lukemckinstry2026-05-01周五jjspace2026-06-01周一lukemckinstry2026-07-01周三ggetz2026-08-03周一jjhembd2026-09-01周二mzschwartz52026-10-01周四lukemckinstry2026-11-02周一ggetz2026-12-01周二jjhembd从源码结构看这份排期由五位核心贡献者jjspace、mzschwartz5、ggetz、jjhembd、lukemckinstry轮流承担每人平均负责约 23 个月度版本职责在时间轴上交错分布而非连续包月。三、排期规则每月第一个工作日发版Release Guide 开篇明确写道We release CesiumJS on the first workday of every month.我们在每月第一个工作日发布 CesiumJS。将上表中的 14 个日期与该规则逐一比对可以验证排期表完全遵循这一规则所有日期都落在周一至周五如 2026-04-01周三、2026-07-01周三、2026-10-01周四等日期为当月 1 日且当天是工作日的月份直接定在 1 日。遇到周末则顺延到下一个工作日2025-11-01 是周六、11-02 是周日因此定在 11-03周一2026-02-01、2026-03-01、2026-08-01 均为周日分别定在 02-02、03-02、08-03周一2026-09-01 是周二、2026-12-01 是周二当天即为工作日直接采用。遇到节假日同样顺延2026 年 1 月 1 日为元旦假期、1 月 2 日又是周四之后紧接着的周末排期表将 1 月发布定在 2026-01-05周一符合第一个工作日的口径。这套规则的实际意义在于下游用户可以在每个月的月初形成稳定的升级预期例如月初运行npm outdated/ 升级 CesiumJS 依赖而 CesiumJS 的 Patch Release Guide 也明确将月度发布称为 monthly train releases月度发布火车补丁版和预发布版都是在火车班次之外的补充机制。四、共享发布职责没有专职 Release Manager排期表中User一列体现的不是普通分工而是 CesiumJS 有意的治理设计。Release Guide 在 Motivation 一节解释了这一机制项目不设唯一的发布经理发布职责由社区共享任何 committer 都可以创建某月的发布负责人在任何时点都可以将职责移交给其他人也可以由他人主动申请接手这样做的目的是传播知识、避免层级化、避免单点故障原文spreads knowledge, avoids stratification, avoids a single point of failure。换句话说排期表本身就是一个值班表表格更新即完成交接交接过程被文档化、可追溯。这也解释了为什么 ReleaseGuide 其余部分被描述为使共享的发布所有权清晰、可重复、低压力make that shared release ownership clear, repeatable, and low-stress——排期表告诉团队这个月归谁而 Guide 正文告诉这个月的负责人具体做什么。五、排期表如何落到仓库的发布产物上排期日期并非孤立的日历数字它会直接体现在仓库的三类产物中可以从当前仓库状态得到印证1. 版本号文件CesiumJS 仓库采用 npm workspaces 组织四个发布单元根 package.json 声明了packages/engine、packages/widgets、packages/sandcastle三个 workspace。当前仓库状态下根包cesium版本为1.145.0package.json 第 3 行cesium/engine版本为26.3.0packages/engine/package.jsoncesium/widgets版本为16.2.0packages/widgets/package.json。三个工作区维护各自独立的语义化版本号发布时按 Release Guide 的版本规则分别用npm version bump -w workspace --no-git-tag-version提升例如根文档给出的示例命令npm version minor -w cesium/engine --no-git-tag-version npm version minor --no-git-tag-version # 根包版本号需与 CHANGES.md 一致2. CHANGES.md 的日期头CHANGES.md 中每个版本段落都以## 版本 - 日期开头。当前仓库状态可以清晰看到排期表与变更记录的对应关系## 1.145 - 2026-09-029 月版本。值得注意的是排期表原定 9 月发布日为 2026-09-01而 CHANGES.md 记录的日期是 09-02——可见实际发布日期允许相对排期日小幅顺延排期日更接近计划日## 1.146 - 2026-10-0110 月版本的段落头日期与排期表中lukemckinstry负责的 2026-10-01 完全一致。这一状态根包仍是 1.145.0、CHANGES.md 已带 1.146 段落头正对应 Release Guide 中 Prepare release updates 阶段的中间态负责人已在main上校对并排好CHANGES.md、准备执行版本提升但尚未完成npm version与提交。3. 发布前的排期核对动作排期表所支撑的日期会在正式发布当天被逐项核对。Release Guide 要求校对CHANGES.md时Verify the date of the release核对该次发布的日期随后创建并推送与版本一致的 tag如git tag -a 1.121 -m 1.121 release最后在cesium.com分支上合并该 tag 触发 CI 部署。排期表的意义正在于让这个月的版本号该是多少、日期该写什么、该找谁这三个问题都有唯一答案。六、月度排期之外的补充发布通道排期表只覆盖火车班次本身。当出现以下情况时会走两条补充通道它们同样记录在 ReleaseGuide 目录中补丁发布Patch release见 PatchReleases/README.md。适用于重大回归或已发布依赖版本兼容性问题流程是从上一个发布 tag如1.123拉出分支、cherry-pick 修复提交、用npm version patch --ws --no-git-tag-version提升各工作区版本、更新CHANGES.md后发布。补丁版遵循语义化版本npm 用户下次npm install时通常无需显式选择即可拿到。预发布Prerelease见 Prereleases/README.md以 npm dist-tag 形式发布通常用于内部测试不进入正式版本线。这两条通道与月度排期表互不冲突补丁版不占用排期表中任何月份的名额预发布版则完全独立于正式版本号线。七、排期规则小结与延伸阅读规则依据每月第一个工作日发版周末、节假日顺延ReleaseGuide 开篇说明ReleaseSchedule.md 全部 14 条日期均符合该规则每月由排期表指定的一位开发者负责可中途交接ReleaseSchedule.md 的 User 列Release Guide Motivation 一节实际发布日期可能相对排期日小幅顺延排期表中 9 月为 2026-09-01而 CHANGES.md 记录## 1.145 - 2026-09-02版本提升按工作区独立进行根包版本须与 CHANGES.md 一致ReleaseGuide Prepare release updates当前根包1.145.0package.json排期之外的紧急修复走 patch/pre-release 通道PatchReleases/README.md、Prereleases/README.md延伸阅读路径均为仓库内相对路径Release Schedule 原文CesiumJS Release Guide月度发布完整流程Patch Releases / Prereleases测试指南e2e 快照要求发布前需按其中方法用npm run test-e2e-update针对上一发布 tag 生成有效快照CHANGES.md、根 package.json、packages/engine/package.json、packages/widgets/package.json【免费下载链接】cesiumAn open-source JavaScript library for world-class 3D globes and maps :earth_americas:项目地址: https://gitcode.com/GitHub_Trending/ce/cesium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考