PaddleX 发版 SOP 全解:从 release 分支、cherry-pick 到 vX.Y.Z 标签的标准化发布流程 人工智能大模型低代码计算机视觉深度学习模型推理服务【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/gh_mirrors/pa/PaddleX点击查看免费下载导读本文以 PaddleX 仓库根目录的 RELEASING.md 为骨架系统拆解 PaddleX 的标准发版流程Release SOP。你将掌握 PaddleX 如何通过develop与release/X.Y双线协同管理 patch / minor 版本发布、如何规范打vX.Y.Z正式标签、如何同步 lineage 回 develop以及版本号在源码侧setuptools_scm 与paddlex/version.py是如何被解析和生成的从而具备独立完成一次 PaddleX 官方版本发布的能力。适用范围与版本类型本文档用于说明 PaddleX 的标准发版流程。当前流程支持以下两类发布bump patch例如3.5.0 - 3.5.1在已有版本线上做补丁升级bump minor例如3.5.x - 3.6.0开启一条新的发布线。对于bump major例如3.x - 4.0.0当前流程暂不支持直接覆盖。如需发布大版本需要单独讨论并设计额外流程例如引入额外分支或新的版本准备方式。从仓库的版本号生成配置看这条 SOP 的版本语义与源码侧的版本解析规则是严格对齐的pyproject.toml中setuptools_scm的tag_regex定义为^v(?Pversion\d\.\d\.\d(?:\.dev\d)?)$即只识别vX.Y.Z与vX.Y.Z.devN两种形态的标签恰好覆盖了 SOP 中约定的正式标签vX.Y.Z与开发态标签形态详见 pyproject.toml。发版原则正式发布只在release/X.Y分支进行正式标签只使用vX.Y.Z不在develop分支打正式发布标签。这三条原则明确了「分支只放发布内容、标签只认正式格式、develop 只做开发」的边界避免将未收敛的开发态内容误当正式版本发布。标准发版流程1. 确认发布目标先确认本次发布属于哪一条版本线以及目标版本号。示例发布3.5.0对应分支为release/3.5发布3.5.1对应分支仍为release/3.5发布3.6.0对应分支为release/3.6。也就是说minor 版本号决定了发布线分支名patch 版本号在同一发布线内递增。这一点与源码中version_scheme release-branch-semver的语义一致——该方案正是面向release/X.Y分支场景设计的 semver 版本推导策略。2. 创建或切换到 release 分支如果该版本线尚未建立则从develop创建对应的release/X.Y分支如果已存在则直接切换到该分支继续发版准备。要求一个 minor 版本线对应一个固定的release/X.Y分支该分支只承载该版本线的发布内容和补丁修复。3. 从 develop 挑选发布内容根据本次发布范围从develop将需要发布的提交按需cherry-pick到release/X.Y直到版本内容 ready。要求只挑选本次发布需要的内容避免把与本次发布无关的新功能带入 release 分支如果 release 分支上出现专门的发布修复也应仅限于本次发布范围。这一步骤是「发布范围收敛」的核心release 分支的内容应精确等于本次要对外交付的功能与修复集合而不是 develop 的镜像。4. 完成发布前检查在release/X.Y上完成发布前检查至少应包括当前分支正确工作区干净版本号符合预期关键功能验证通过必要的测试、构建、打包和回归通过发布说明已经准备好。其中「版本号符合预期」可以在源码侧得到验证。paddlex/version.py中的get_pdx_version()按固定顺序解析版本号通过importlib.metadata.version(paddlex)读取正常 pip / wheel 安装的版本在 git checkout 场景下通过setuptools_scm.get_version()基于标签推导版本以上均失败时回退到0.0.0。相关实现见 paddlex/version.py。因此在发布前检查阶段可以直接在release/X.Y分支上运行python -c from paddlex import version; print(version.get_pdx_version())来确认推导出的版本号与目标vX.Y.Z一致。5. 打正式标签确认版本 ready 后在release/X.Y分支上打正式标签标签格式必须为vX.Y.Z。示例v3.5.0、v3.5.1、v3.6.0。要求标签必须打在本次正式发布对应的 release 分支上不使用开发态标签作为正式发布标签。标签形态同样由源码约束背书pyproject.toml与paddlex/version.py中_SETUPTOOLS_SCM_CONFIG的tag_regex均只接受^v\d\.\d\.\d(?:\.dev\d)?$即正式标签必须是vX.Y.Z开发态标签则是vX.Y.Z.devN形态version_scheme release-branch-semver、local_scheme node-and-date配合使用使打在该分支上的标签能稳定推导出对应版本号。6. 发布 GitHub Release在 GitHub 上基于本次正式标签创建 Release将发布说明与产物绑定到该标签。7. 将 release 分支的 lineage 同步回 develop当一条新的release/X.Y发布线完成首个正式版本发布后需要将该release/X.Y的 lineage 同步回develop。这一步是当前流程中的固定步骤每条新的 minor 发布线至少执行一次。目的让develop正确感知该发布线已经完成的正式版本保持后续开发与发布节奏一致。要求每条新的release/X.Y在首个正式版本发布后执行一次同一条release/X.Y后续如果继续发布补丁版本通常不要求重复执行。8. 进入下一轮开发或补丁发布发布完成后develop继续进行后续开发release/X.Y继续维护该版本线。如果后续还要发布该版本线的补丁版本继续在release/X.Y上准备补丁、从develop按需cherry-pick并重复执行本 SOP 中的发布步骤。不同 bump 类型的处理方式Patch 发布适用场景修复线上问题、小范围兼容性修复、文档/依赖/稳定性补丁。处理方式在现有release/X.Y分支上继续准备内容打下一个 patch 标签例如v3.5.2。Minor 发布适用场景开启一条新的发布线、发布下一阶段稳定版本例如3.6.0。处理方式从develop建立新的release/X.Y按标准流程准备版本内容打首个正式标签例如v3.6.0发布后将该 release 分支的 lineage 同步回develop。Major 发布当前结论暂不纳入本 SOP后续需要单独讨论并设计流程。在新的方案明确之前不建议直接套用当前 minor/patch 的做法处理 major 发布。发布检查清单每次发版前请确认以下事项已确认目标版本号和对应 release 分支release 分支中的内容已经 ready发布范围已经收敛关键测试和回归已通过发布说明已准备完成正式标签格式为vX.Y.ZGitHub Release 已创建如本次是该release/X.Y的首个正式版本发布完成后已将 lineage 同步回develop。可将该清单固化为 PR 或发版工单的模板逐项勾选后再执行打标签动作。日常维护建议新功能优先进入develop正式发布始终通过release/X.Y执行补丁版本始终在对应的release/X.Y上维护每条新的release/X.Y在首个正式版本发布后执行一次 lineage 同步。如当前流程发生调整应同步更新 RELEASING.md 与 RELEASING_en.md 两份文档。发版流程在仓库中的落地证据除 SOP 文档本身外仓库内有几处与发版直接相关的机制可供核对版本号生成配置pyproject.toml 的[tool.setuptools_scm]声明了release-branch-semver版本方案、node-and-date本地方案与tag_regexsetup.py 中setup(use_scm_versionTrue, ...)开启基于 SCM 的版本号注入。运行时版本查询paddlex/version.py 提供get_pdx_version()、get_version_dict()、show_versions()其中show_versions()会同时输出 PaddleX、PaddlePaddle 以及各 repo_manager 依赖仓库的版本与 commit 信息。依赖仓库的版本记录paddlex/repo_manager/repo.py 中get_version()读取各依赖仓库根目录下的.pdx_gen.version文件第一行为静态版本号第二行为 commit这解释了为什么发版时除了 PaddleX 主版本号还需要关注 devkit 仓库的版本与 commit 对齐。版本历史核对每个正式版本发布后docs/CHANGELOG.md 会记录当次发布的能力升级、模型新增、部署能力与 Bug 修复例如 v3.0.0、v3.1.0、v3.2.0、v3.3.0 等条目可作为「发布说明已准备完成」的对照样本。理解这条 SOP 与上述源码机制后你既可以作为发布负责人完整走一遍「确认目标 → 建分支 → cherry-pick → 检查 → 打标签 → 发 Release → 同步 lineage」的标准流程也能在版本号异常时快速定位是标签格式、分支位置还是版本解析配置出的问题。赞分享人工智能大模型低代码计算机视觉深度学习模型推理服务【免费下载链接】PaddleXAll-in-One Development Tool based on PaddlePaddle项目地址https://gitcode.com/gh_mirrors/pa/PaddleX点击查看免费下载相关推荐PaddleOCR 发版流程解析release 分支、vX.Y.Z 标签与依赖约束的标准作业程序PaddleOCR 发版流程解析release 分支、vX.Y.Z 标签与依赖约束的标准作业程序 本文基于 PaddleOCR 仓库根目录的 RELEASIN人工智能计算机视觉深度学习QuickRecorder 上手macOS 系统声音录制怎么配才对QuickRecorder 上手macOS 系统声音录制怎么配才对 周五下午线上培训刚结束你要把录下来的文件发给缺席的同事。问题不在录屏在声音只想要电桌面应用音视频屏幕录制PaddleX 版本发布 SOP 指南基于 release/X.Y 分支的 Patch 与 Minor 发版全流程PaddleX 版本发布 SOP 指南基于 release/X.Y 分支的 Patch 与 Minor 发版全流程 本指南以仓库根目录下的 RELEASING人工智能大模型低代码计算机视觉深度学习模型推理服务上一篇Invidious网络协议YouTube通信协议分析研究下一篇React Scan模块导入ES6 import标准用法和注意事项创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考