云原生开发工具微服务网络【免费下载链接】telepresenceLocal development against a remote Kubernetes or OpenShift cluster项目地址https://gitcode.com/gh_mirrors/te/telepresence点击查看免费下载导读本文围绕 Telepresence 仓库中prepare-release技能.claude/skills/prepare-release/SKILL.md展开系统讲解在本地为 Telepresence 打版本提交与标签的完整操作、前置校验、版本命名规范、与CHANGELOG.yml、go.mod及ship-release技能的衔接关系。读完本文你将掌握如何通过设置TELEPRESENCE_VERSION并运行make prepare-release安全地完成一次本地发布准备并理解其背后的 Makefile 实现原理与边界约束。一、prepare-release技能是什么一次显式的本地发布准备动作在 Telepresence 仓库中发布流程被拆分为两个明确的阶段prepare-release在本地创建发布提交与两个带注释的标签annotated tag到此为止不推送任何内容ship-release承接上一阶段负责推送分支与标签、驱动 CI、生成文档 PR 并合并最终完成发布。prepare-release技能见 .claude/skills/prepare-release/SKILL.md就是对make prepare-release这一步骤的封装其核心设计意图是让本地打标签成为一次明确的用户动作而不是一串需要靠记忆拼接的命令它只停留在本地提交与本地标签推送交给ship-release它被标记为user-onlydisable-model-invocation: true这些标签最终会驱动公开发布因此创建标签必须由用户显式决策绝不能成为模型推断意图后的副作用。二、动手之前四项强制前置检查技能要求在运行任何命令之前先向用户明确展示以下四项检查结果并等待用户明确同意go后再执行#检查项具体要求1版本字符串TELEPRESENCE_VERSION必须是以下三种格式之一vX.Y.Z-test.N预发布无 Homebrew、不标记 latest、vX.Y.Z-rc.N预发布无 Homebrew、不标记 latest、vX.Y.ZGA标记 latest触发 Homebrew 更新2分支应为发布分支典型为release/v2拒绝在main风格分支上继续3工作区状态必须干净运行git status若存在与构建相关的未提交或未跟踪文件则停止4CHANGELOG.yml状态顶部条目的版本应与TELEPRESENCE_VERSION匹配不带开头的v若其date仍为(TBD)是预期现象——make prepare-release会为 GA 版本自动写入日期这四项检查分别对应仓库中的哪些事实从源码看版本字符串校验在 Makefile 中即有体现TELEPRESENCE_VERSION必须匹配v2.*否则 make 直接报错终止$(if $(filter v2.%,$(TELEPRESENCE_VERSION)),\ $(info [make] TELEPRESENCE_VERSION$(TELEPRESENCE_VERSION)),\ $(error TELEPRESENCE_VERSION variable is invalid: It must be a v2.* string, but is $(TELEPRESENCE_VERSION)))CHANGELOG.yml的date: (TBD)自动补全逻辑在 build-aux/main.mk当TELEPRESENCE_VERSION匹配v[0-9]\.[0-9]\.[0-9]即 GA 格式时用sed将date: (TBD)替换为date: $(date %Y-%m-%d)并将CHANGELOG.yml加入暂存区。三、核心操作两条命令完成本地发布准备export TELEPRESENCE_VERSIONvX.Y.Z[-suffix.N] make prepare-release执行完成后仓库中会产生一个带注释的标签vX.Y.Z[-suffix.N]一个带注释的标签rpc/vX.Y.Z[-suffix.N]一个提交commit用于更新仓库内部的 go.mod 引用。3.1make prepare-release的底层实现查看 build-aux/main.mk 可以看到该目标的具体实现.PHONY: prepare-release prepare-release: generate go mod edit -requiregithub.com/telepresenceio/telepresence/rpc/v2$(TELEPRESENCE_VERSION) git add go.mod (cd pkg/vif/testdata/router \ go mod edit -requiregithub.com/telepresenceio/telepresence/rpc/v2$(TELEPRESENCE_VERSION) \ git add go.mod) git commit --signoff --messagePrepare $(TELEPRESENCE_VERSION) || true git tag --annotate --message$(TELEPRESENCE_VERSION) $(TELEPRESENCE_VERSION) git tag --annotate --message$(TELEPRESENCE_VERSION) rpc/$(TELEPRESENCE_VERSION)逐行拆解其作用依赖generate目标先执行代码生成相关任务确保生成物如 docs/reference/cli/telepresence.md、docs/release-notes.md、docs/helm/values.schema.json 等见 build-aux/main.mk与源码一致go mod edit -require把主模块go.mod中对github.com/telepresenceio/telepresence/rpc/v2的依赖版本提升到即将发布的$(TELEPRESENCE_VERSION)pkg/vif/testdata/router子模块同步更新pkg/vif/testdata/router/go.mod同样引用github.com/telepresenceio/telepresence/rpc/v2且同样有指向./../../../../rpc的replace指令因此也需要同步提升版本并git addgit commit --signoff以Prepare version为提交信息创建带 Signed-off-by 的提交|| true表示若没有内容可提交提交失败也不中断两次git tag --annotate分别创建vX.Y.Z[-suffix.N]和rpc/vX.Y.Z[-suffix.N]两个带注释标签。为什么主模块与 rpc 模块是分开的从 go.mod 与 rpc/go.mod 可见仓库采用多模块布局主模块为github.com/telepresenceio/telepresence/v2RPC 模块为独立的github.com/telepresenceio/telepresence/rpc/v2且主模块通过replace github.com/telepresenceio/telepresence/rpc/v2 ./rpc使用本地路径。发布时打上rpc/前缀标签正是为了让该独立模块的消费者能够通过 Go modules 获取到对应版本的 RPC 包。3.2 为什么不能跳过make prepare-release而手动打标签技能明确要求禁止跳过make prepare-release直接手动打标签原因是该 make 目标会更新 go.mod 引用。如果只是手动执行git taggo.mod 中的引用不会被更新随后发布的模块将是坏的broken module。此外标签必须使用--annotate带注释以便携带版本信息若在之前失败的尝试之上重复运行make prepare-release必须先清理残留标签。检查方式为git tag --points-at HEAD如果已经列出了目标标签应停止并报告由用户决定是否删除。四、验证结果确认本地提交与标签就位执行完成后使用以下两条命令验证git log -1 --stat git tag --points-at HEADgit log -1 --stat应显示Prepare vX.Y.Z[-suffix.N]提交及其改动的文件至少包含主go.mod与pkg/vif/testdata/router/go.modGA 版本时还包含CHANGELOG.ymlgit tag --points-at HEAD应同时列出vX.Y.Z[-suffix.N]与rpc/vX.Y.Z[-suffix.N]两个标签。五、版本命名与发布类型映射TELEPRESENCE_VERSION的三种合法格式决定了发布类型参见 AGENTS.md 中的 Release 章节版本格式发布类型行为差异vX.Y.Z-test.N测试发布test build标记为 pre-release不提升为 latestvX.Y.Z-rc.N发布候选release candidate标记为 pre-release不提升为 latestvX.Y.ZGA 正式版标记为 latest触发 Homebrew 更新在发布分支上的完整操作流程为# Test release预发布不提升为 latest export TELEPRESENCE_VERSIONv2.27.0-test.0 make prepare-release # Release candidate export TELEPRESENCE_VERSIONv2.27.0-rc.0 make prepare-release # GA release成为 latest更新 Homebrew export TELEPRESENCE_VERSIONv2.27.0 make prepare-release注意prepare-release阶段不要推送标签。上述命令块中的git push origin HEAD $TELEPRESENCE_VERSION rpc/$TELEPRESENCE_VERSION只是展示推送机制真正的顺序是先推送分支、开 PR再由ship-release在 CI 全绿后推送标签。六、与CHANGELOG.yml及文档生成的关系CHANGELOG.yml是发布变更记录的单一事实来源其头部CHANGELOG.yml明确定义了 schemaversion版本号不带v前缀如2.33.0date(TBD)表示未发布YYYY-MM-DD表示已发布notes一组变更条目每条包含typebugfix/feature/security/change、title、bodyHTML 而非 Markdown以及可选的docs、image字段。与prepare-release相关的关键约定详见 .claude/skills/changelog-entry/SKILL.md 与 AGENTS.md为即将发布的版本添加条目时date应使用(TBD)make prepare-release会在TELEPRESENCE_VERSION为 GA 版本时自动写入实际日期见上文 build-aux/main.mk 的 sed 逻辑修改CHANGELOG.yml后应运行make docs-files重新生成 docs/release-notes.md、docs/release-notes.mdx 与 docs/variables.yml 等派生文档。七、边界约束prepare-release明确拒绝的行为技能以Refuse to清单的形式划定了行为边界不推送任何内容分支、提交或标签——这是ship-release的职责不跳过make prepare-release手动打标签——会跳过 go.mod 引用更新产生损坏的模块不在上次尝试之上重复运行而不先清理残留标签——若git tag --points-at HEAD已列出目标标签应停止并报告由用户决定是否删除。7.1 与ship-release的交接点prepare-release在本地提交与两个带注释标签处停止。之后需要用户手动完成交接推送分支并在其上开 PR然后调用 .claude/skills/ship-release/SKILL.md 将发布推进到底校验git tag --points-at HEAD必须同时包含vX.Y.Z与rpc/vX.Y.Z若缺rpc/同伴标签则停止说明需要先运行make prepare-release等待发布 PR 的 CI含regression门禁全绿在兄弟仓库../telepresence.io中生成并合入文档 PRmake generate-versionDOCS_VERSION取v2.X形式如2.28推送标签触发 Releases 工作流等待 macOS 签名环境人工审批最长 24 小时仅对GA 版本合并两个 PR-test.N/-rc.N预发布版本跳过合并步骤两个 PR 保持打开直到 GA。八、小结prepare-release技能把 Telepresence 发布流程中最敏感的一步——创建发布提交与本地标签——固化为一个显式、可校验、用户独占的操作。其价值在于可追溯标签与提交携带版本信息与 Signed-off-by来源清晰可验证四步前置检查 git log -1 --stat/git tag --points-at HEAD双重验证杜绝误操作不越界推送动作被严格隔离到ship-release确保标签一旦推送即公开、不可撤回的风险始终由显式决策承担。对于维护者而言掌握make prepare-release不仅意味着会敲两条命令更意味着理解版本语义test/rc/GA、模块引用更新go.mod与rpc/标签以及变更记录CHANGELOG.yml日期补全三者如何在这一步中被一次性、一致地落实。赞分享云原生开发工具微服务网络【免费下载链接】telepresenceLocal development against a remote Kubernetes or OpenShift cluster项目地址https://gitcode.com/gh_mirrors/te/telepresence点击查看免费下载相关推荐direnv 一键发布全流程指南深入解析 make prepare-release 与自动化 Release 管线direnv 一键发布全流程指南深入解析 make prepare release 与自动化 Release 管线 导读本文围绕 direnv 仓库根目录下开发工具CLIGrafana Loki 发布准备Prepare Release流程全解析基于 release-please 的自动化发布 PR 管线Grafana Loki 发布准备Prepare Release流程全解析基于 release please 的自动化发布 PR 管线 本篇指南以 Gra可观测性日志分析后端微服务对象存储云原生OpenTelemetry Collector 版本发布全流程解析从 Prepare Release 到标签推送、Release 分支与 Bugfix 版本OpenTelemetry Collector 版本发布全流程解析从 Prepare Release 到标签推送、Release 分支与 Bugfix 版本可观测性后端运维观测上一篇emoji-regex原理揭秘从源码构建到Unicode数据依赖的完整技术架构下一篇git-sync高级配置认证、钩子与性能优化全攻略创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
ng-zorro-antd Select 联动实现指南:省市联动数据协调与 Cascader 方案对比 UI组件前端 【免费下载链接】ng-zorro-antd Angular UI Component Library based on Ant Design 项目地址: https://gitcode.com/gh_mirrors/ng/ng-zorro-antd 点击查看 免费下载 导读
本文聚焦 ng-zorro-antd 的 Select(下拉选择器)组件如… · 2026/9/28 2:58:19
N32WB03X BLE蓝牙透传方案设计与实现:从GATT到调试技巧 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/28 2:58:18
Spingboot启动预热的实现 启动预热的适用场景启动预热适合以下情况:数据主要来自第三方接口,无法直接从本地数据库读取。第三方接口响应较慢,首次访问容易超时。一个页面需要调用多个第三方接口或逐项查询。数据读取频繁,但变化不频繁。希望服务启动后&… · 2026/9/28 3:40:12
学Java别走弯路,这5个方向最吃香 学Java的人很多,但学明白的人不多。有人学了半年还在写控制台程序,有人一年就能独当一面。差别不在天赋,而在方向。Java生态太庞大了,什么都学等于什么都没学。选对方向,事半功倍。今天盘点当前最吃香的5个Java方向&am… · 2026/9/28 3:32:15
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25