用途:该文档是 XerahS 项目中涉及 Git 与版本号规则的唯一来源,涵盖提交与推送流程、提交信息格式、版本递增行为以及 Directory.Build.props 的更新,替代已废弃的 docs/development/RELEASE_PROCESS.md。
版本来源:以仓库根目录的 Directory.Build.props 作为 XerahS 应用版本的唯一工作来源。任何带版本的提交前,需将根版本与已有的最高 XerahS git 标签比较;若根版本不严格大于最新标签,先提升根版本,使分支携带下一个未发布版本。不得在单个 .csproj 文件中设置版本号。提升版本时,需同步更新仓库中所有有意承载 XerahS 应用版本的受跟踪 Directory.Build.props,使取值一致。派生发布元数据(如 build/windows/chocolatey/xerahs.nuspec)须在发布自动化期间从根版本同步;打标签的发布还会生成并冒烟测试 Chocolatey .nupkg,因此 build/windows/chocolatey/ 下的发布元数据需保持对自动化友好。
版本递增策略:漏洞修复只增补丁号(0.0.z,保留主次版本,增大 z);新功能增大次版本号并重置补丁号;破坏性变更增大主版本号并重置次版本号与补丁号。
提交前必需检查:依次执行 git pull --recurse-submodules、git submodule update --init --recursive、dotnet build src/desktop/XerahS.sln,仅在构建成功且 0 错误时继续。
提交与推送:git add .;使用 git commit -m "[vX.Y.Z] [Type] concise description" 提交;再 git push。提交信息规则:XerahS 应用提交以根 Directory.Build.props 的 <Version> 作为 [vX.Y.Z] 前缀,但仅在该版本经核实严格大于已有最高 XerahS git 标签后使用;绝不可使用低于或等于最新标签的版本前缀,若最新标签已达到或超过根版本,先提升 Directory.Build.props 再以提升后的版本提交。需包含类型标记,如 [Fix]、[Feature]、[Build]、[Docs]、[Refactor];描述应简洁具体。共享库(如 ShareX.ImageEditor)的仅子模块提交省略 [vX.Y.Z],按 AGENTS.md 使用 [Type] description。
Git 钩子:保持 .githooks 生效(git config core.hooksPath .githooks);除非明确要求紧急使用,不得通过 --no-verify 绕过钩子;钩子失败时修复问题并重新提交。
文档与 Git:Markdown 文档变更需与相关代码/配置变更一并提交;当生成的说明文档属于所要求的工作时,不得让其处于未提交状态。
限制:资料未提供具体版本号数值、标签示例、钩子脚本内容或 Chocolatey 打包细节,以上均暂未提供。