My new feature
【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
Short description.
Docs: TODO(name): add docs link Example: TODO(name): add example link
### 3.3 Breaking changes(破坏性变更,刻意放在最后) 模板注释解释了排序理由(第 58–62 行):changelog 面向大多数读者,应"先讲新东西";而详细的迁移指南只对升级开发者有用,所以沉底。每节要求"什么变了、为什么可以接受、用户需要应用的 before/after"。若本次发布没有破坏性变更,正文**必须显式写 `None.`**(模板第 68 行即为该占位),不能留空。 [changeset-0-37.md](https://link.gitcode.com/i/39e2aef1291c95dd4dd9d86077b621e9) 是三段式结构的现实样本:其 `## New features` 下包含 Assets、`rerun rrd stats` 优化检查、视频解码加速等多条 `###` 小节,`## Breaking changes` 下则是 `datatypes` 改名 `encodings`、Rust 1.96 升级、`Loggable` trait 拆分等,每条都附完整的 before/after 迁移代码。 ### 3.4 尾注:指向旧版迁移指南 模板最后一行固定输出: ```markdown --- Looking for an older release? See the [migration guides for 0.33 and earlier](https://link.gitcode.com/i/26f7323a2dec88cfdc3fed3d99c400b6).原文中的相对路径../reference/migration.md是相对changelog/目录的,对应仓库中的 docs/content/reference/migration.md。该页面自身也说明了分工:"For Rerun 0.34 and later, breaking changes and their migration guides are part of the changelog."——0.33 及更早的迁移指南留在旧文档页,0.34 起全部并入 changelog 的 Breaking changes 节,模板尾注正是两个时代的衔接点。
四、条目收件箱upcoming/:单 PR 单文件如何避免合并冲突
upcoming/_template.md 是"每条 PR 的条目模板",其设计目标写在注释里:one file per PR,因为所有人编辑同一份共享 changeset 会产生合并冲突。条目文件命名为短 slug(如upcoming/measurements-archetype.md),frontmatter 三要素:
--- title: "Measurements archetype" hidden: true type: feature # highlight | breaking | feature ---hidden: true:开发中的条目不进文档站导航;type:决定该条目发布时归入哪个章节——highlight进 Highlights,feature进 New features,breaking进 Breaking changes(且必须附迁移指南);title:文档构建要求docs/content/下每个页面都有标题。
条目内相对链接要假装自己位于changelog/来写(如../reference/migration/...),因为合并后条目就在那里了;upcoming/目录也因此被排除出链接检查。
仓库中有两类真实条目可以对照阅读:
- upcoming/measurements-archetype.md(
type: feature):介绍Measurementsarchetype,含图片、Python 代码示例,末尾给出Docs:与Example:两行链接——完全符合模板注释对 feature 条目的"必须有文档链接"要求; - upcoming/ros-scalar-sensors-measurements.md(
type: breaking):说明 MCAP importer 将 ROS 标量传感器消息改映射为Measurements,附了Scalars:scalars→Measurements:values的 schema before/after 对照——这正是模板要求的"迁移指南"形态。
五、CI 护栏一:check_changelog_redirect.py与"不要提前创建变更集"
模板注释第 21–23 行给出了一条看似繁琐、实则是整套机制防漂移核心的操作纪律:
Do this at assembly time, not ahead of it:
scripts/ci/check_changelog_redirect.pyrequires the newestchangeset-0-xx.mdto be the onechangelog.mdredirects to, so a changeset for an unreleased version would fail CI.
check_changelog_redirect.py 的实现只有三十余行,逻辑完全对得上:
def extract_version(path: Path) -> tuple[int, ...]: version = path.name.removesuffix(".md").removeprefix("changeset-") return tuple(map(int, version.split("-"))) def main() -> None: ... changesets = list(CHANGELOG_DIR.glob("changeset-*.md")) max_version = max(extract_version(changeset) for changeset in changesets) assert max_version == extract_current_redirect_version(), "The current `changelog.md` redirect is not up to date"它从 docs/content/changelog.md 的 frontmatter 读出redirect:目标(当前为changelog/changeset-0-37),再从changelog/changeset-*.md文件名中解析版本号,断言两者一致。由此推出两条工程纪律:
- 重定向更新必须与新变更集同一次提交落地——若只建了
changeset-0-38.md而changelog.md仍指向0-37,CI 立即失败; - 发布周期中禁止预建下一版变更集——一个空壳的未发布版本会立即变成"最新的 changeset",使断言失败。因此发布周期内
upcoming/是唯一的在途产物,下一个变更集只在组装时才从 _template.md 复制出来。skills/assemble-changelog/SKILL.md 的 Notes 一节与 RELEASES.md 第 4 步都重复强调了这一点。
六、CI 护栏二:TODO(name)是发布阻塞项
模板第 28 行声明:"The release is BLOCKED until everyTODO(name)below is resolved." 与 upcoming/_template.md 的说明一致:迭代期间写TODO(name): add docs link占位是允许的,但发布前必须全部解析。组装 skill 给出了具体的验证命令:
rg -n 'TODO\([^)]+\)' docs/content/changelog/changeset-0-XX.md【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考