prepare-release

作者: microsoft

为功能管理 .NET SDK 准备发布。当用户提及发布准备、版本升级、创建合并 PR、预览版发布或稳定版时使用…

npx skills add https://github.com/microsoft/featuremanagement-dotnet --skill prepare-release

Prepare Release

This skill automates the release preparation workflow for the Feature Management .NET SDK project.

When to Use This Skill

Use this skill when you need to:

  • Bump the package version for a new stable or preview release
  • Create merge PRs to sync branches (main → release, preview → release)
  • Prepare all the PRs needed before publishing a new release

Background

Repository Information

  • GitHub Repo: https://github.com/microsoft/FeatureManagement-Dotnet
  • Packages (all 3 are released together with the same version):
    1. Microsoft.FeatureManagement — Base package
    2. Microsoft.FeatureManagement.AspNetCore — ASP.NET Core package
    3. Microsoft.FeatureManagement.Telemetry.ApplicationInsights — Application Insights telemetry package

Branch Structure

  • main – primary development branch for stable releases
  • preview – development branch for preview releases
  • release/v{major} – release branch (e.g., release/v4)

Version Files

The version is defined by <MajorVersion>, <MinorVersion>, <PatchVersion>, and optionally <PreviewVersion> properties in all three .csproj files simultaneously:

  1. src/Microsoft.FeatureManagement/Microsoft.FeatureManagement.csproj
  2. src/Microsoft.FeatureManagement.AspNetCore/Microsoft.FeatureManagement.AspNetCore.csproj
  3. src/Microsoft.FeatureManagement.Telemetry.ApplicationInsights/Microsoft.FeatureManagement.Telemetry.ApplicationInsights.csproj

Each file contains a version block like:

<!-- Official Version -->
<PropertyGroup>
  <MajorVersion>4</MajorVersion>
  <MinorVersion>1</MinorVersion>
  <PatchVersion>0</PatchVersion>
</PropertyGroup>

For preview versions, a <PreviewVersion> line is also present:

<!-- Official Version -->
<PropertyGroup>
  <MajorVersion>4</MajorVersion>
  <MinorVersion>0</MinorVersion>
  <PatchVersion>0</PatchVersion>
  <PreviewVersion>-preview5</PreviewVersion>
</PropertyGroup>

Version Format

  • Stable: {major}.{minor}.{patch} (e.g., 4.1.0)
  • Preview: {major}.{minor}.{patch}-preview{N} (e.g., 4.0.0-preview5)

Quick Start

Ask the user whether this is a stable or preview release, and what the new version number should be. Then follow the appropriate workflow below.


Workflow A: Stable Release

Step 1: Version Bump PR

Create a version bump PR targeting main by running the version bump script:

.\scripts\version-bump.ps1 <new_version>

For example: .\scripts\version-bump.ps1 4.2.0

The script will automatically:

  1. Read the current version from the first .csproj file.
  2. Create a new branch from main named <username>/version-bump-<new_version> (e.g., linglingye/version-bump-4.2.0).
  3. Update <MajorVersion>, <MinorVersion>, <PatchVersion> in all three .csproj files, and remove <PreviewVersion> if present.
  4. Commit, push, and create a PR to main with title: Version bump <new_version>.

When the script prompts Proceed? [y/N], confirm by entering y.

Sample PR: https://github.com/microsoft/FeatureManagement-Dotnet/pull/540

Step 2: Merge Main to Release Branch

After the version bump PR is merged, create a PR to merge main into the release branch by running:

.\scripts\merge-to-release.ps1 <new_version>

For example: .\scripts\merge-to-release.ps1 4.2.0

When the script prompts Proceed? [y/N], confirm by entering y.

Important: Use "Create a merge commit" (not "Squash and merge") when merging this PR to preserve commit history.

Sample PR: https://github.com/microsoft/FeatureManagement-Dotnet/pull/541


Workflow B: Preview Release

Step 1: Version Bump PR

Create a version bump PR targeting preview by running the version bump script with the -Preview flag:

.\scripts\version-bump.ps1 <new_version> -Preview

For example: .\scripts\version-bump.ps1 4.0.0-preview4 -Preview

When the script prompts Proceed? [y/N], confirm by entering y.

Sample PR: https://github.com/microsoft/FeatureManagement-Dotnet/pull/476

Step 2: Merge Preview to Release Branch

After the version bump PR is merged, create a PR to merge preview into the release branch by running:

.\scripts\merge-to-release.ps1 <new_version> -Preview

For example: .\scripts\merge-to-release.ps1 4.0.0-preview4 -Preview

When the script prompts Proceed? [y/N], confirm by entering y.

Important: Use "Create a merge commit" (not "Squash and merge") when merging this PR to preserve commit history.

Sample PR: https://github.com/microsoft/FeatureManagement-Dotnet/pull/477


Review Checklist

Each PR should be reviewed with the following checks:

  • Version is updated consistently across all 3 .csproj files
  • No unintended file changes are included
  • Merge PRs use merge commit strategy (not squash)
  • Branch names follow the naming conventions
  • All CI checks pass

来自 microsoft 的更多技能

oss-growth
microsoft
OSS增长黑客角色
agent-framework-azure-ai-py
microsoft
使用Microsoft Agent Framework Python SDK(agent-framework-azure-ai)构建Azure AI Foundry代理。在创建使用AzureAIAgentsProvider的持久化代理、使用托管工具(代码解释器、文件搜索、网络搜索)、集成MCP服务器、管理对话线程或实现流式响应时使用。涵盖函数工具、结构化输出和多工具代理。
development
airunway-aks-setup
microsoft
在AKS上设置AI Runway——从裸集群到运行模型。涵盖集群验证、控制器安装、GPU评估、提供商设置和首次部署。适用场景:“设置AI Runway”、“接入AKS集群”、“安装AI Runway”、“airunway设置”、“将模型部署到AKS”、“在AKS上进行GPU推理”、“在AKS上配置KAITO”、“在AKS上运行LLM”、“在AKS上使用vLLM”、“在AKS上设置模型服务”、“AI Runway控制器”。
devops
appinsights-instrumentation
microsoft
使用Azure Application Insights对Web应用进行插桩的指南。提供遥测模式、SDK设置和配置参考。适用场景:如何对应用进行插桩、App Insights SDK、遥测模式、什么是App Insights、Application Insights指南、插桩示例、APM最佳实践。
devops
applicationinsights-web-ts
microsoft
使用Application Insights JavaScript SDK(@microsoft/applicationinsights-web)为浏览器/Web应用添加检测。用于真实用户监控(RUM)——页面视图、点击、AJAX/fetch依赖项、异常、自定义事件,以及与后端OpenTelemetry追踪关联的浏览器端GenAI代理追踪。涵盖SDK加载器脚本和npm设置、框架扩展(React、React Native、Angular)、点击分析、遥测初始化器,以及从浏览器发出的代理/工具/模型跨度所遵循的OTel GenAI语义约定。
devops
azure-ai-anomalydetector-java
microsoft
使用适用于 Java 的 Azure AI 异常检测器 SDK 构建异常检测应用程序。在实现单变量/多变量异常检测、时间序列分析或 AI 驱动的监控时使用。
development
azure-ai-language-conversations-py
microsoft
使用azure-ai-language-conversations Python SDK实现对话语言理解(CLU)。当使用ConversationAnalysisClient分析对话意图和实体、构建NLP功能或将语言理解集成到应用程序中时使用。
development
azure-ai-ml-py
microsoft
Azure Machine Learning SDK v2 for Python。用于机器学习工作区、作业、模型、数据集、计算资源和管道。 触发词:“azure-ai-ml”、“MLClient”、“工作区”、“模型注册表”、“训练作业”、“数据集”。
development