SuperAPI AI 工具集

dotnet-release-management

通用与其它

查看项目

更新于 10-16 01:27

技能介绍

该技能面向 .NET 8.0+ 项目的发布生命周期策略,涵盖版本号、变更日志、预发布流程与分支模式。

主要能力: 一、NBGV 版本管理。NBGV 依据 version.json 与 git 提交高度确定性地计算版本,无需手动改版本号。安装与初始化:dotnet tool install --global nbgv;nbgv install(在仓库根生成 version.json)。version.json 字段包括 version(如 "1.0")、publicReleaseRefSpec(产生公开版本的分支/标签正则)、cloudBuild.buildNumber.enabled、cloudBuild.setVersionVariables、nugetPackageVersion、assemblyVersion.precision、inherit。版本高度即 version 字段上次变更后的提交数,作为 patch 版本。常用命令:nbgv get-version、nbgv get-version -v NuGetPackageVersion、nbgv prepare-release、nbgv cloud。单仓多项目可在各子目录放 version.json 并设 inherit: true。 二、SemVer 策略。破坏性 API 变更升 major(删除公开类型/成员、改签名、改返回类型、封密封类、虚方法改非虚);向后兼容新功能升 minor;缺陷修复升 patch。可用 EnablePackageValidation 与 PackageValidationBaselineVersion 检测意外破坏。应用可采用 SemVer、CalVer、构建号或 NBGV 高度,并用 InformationalVersion 嵌入构建元数据以便运行时追溯。 三、变更日志。采用 Keep a Changelog 格式(Added/Changed/Deprecated/Removed/Fixed/Security),可用 git-cliff 配合 conventional commits 自动生成:cargo install git-cliff;git cliff --output CHANGELOG.md;git cliff --unreleased --output CHANGELOG.md;git cliff --tag v1.2.0 --unreleased,并通过 cliff.toml 配置 commit 分组。 四、预发布流程。alpha -> beta -> rc -> stable;NBGV 下修改 version.json 后缀即可推进;手动方式使用 VersionPrefix/VersionSuffix 或 dotnet pack /p:VersionSuffix="beta.$(BUILD_NUMBER)"。NuGet 预发布排序遵循 SemVer 2.0。 五、分支模式。主干加标签(git tag -a v1.0.0 -m "Release v1.0.0")、发布分支、nbgv prepare-release 自动建分支并升版本、热修复分支。库与小型团队通常主干加标签即可。

限制:资料给出 .NET 8.0+ 与 Nerdbank.GitVersioning 3.6+ 基线;插件专属发布流程、CI/CD 推送部署、GitHub Release 创建、NuGet 包元数据与签名、项目级配置(SourceLink、CPM)均不在本技能范围内,分别见其他技能,具体细节暂未提供。资料中 NBGV 注意事项部分在末尾被截断。