bump-aspire-version

$npx mdskill add microsoft/aspire/bump-aspire-version

The product version is defined in the first property group of `eng/Versions.props`. Keep the target branch's automatic milestone assignment aligned in `.github/policies/milestoneAssignment.prClosed.yml`. Do not replace every occurrence of the old version throughout the repository.

SKILL.md

.github/skills/bump-aspire-versionView on GitHub ↗
---
name: bump-aspire-version
description: Bumps the Aspire repository product version in eng/Versions.props using previous version-bump commits as guidance. Use when asked to bump Aspire branding, advance the repository to a new major or minor version, or create a version-bump PR. Not for external dependency, SDK, or container-image updates.
---

# Bump the Aspire repository version

The product version is defined in the first property group of `eng/Versions.props`.
Keep the target branch's automatic milestone assignment aligned in
`.github/policies/milestoneAssignment.prClosed.yml`. Do not replace every occurrence
of the old version throughout the repository.

## Inspect the target and history

1. Establish the requested version and target branch. Interpret `X.Y` as `X.Y.0`.
   Ask if the target version is missing; do not infer it from the calendar or SDK.
2. Read the working-tree status and preserve unrelated changes. Use the current
   session branch and follow any app-managed branch naming requirements.
3. Read both files and inspect previous bumps, including their complete diffs so
   related automation changes are not missed:

   ```bash
   git log -8 --oneline -G '<MajorVersion>|<MinorVersion>|<PatchVersion>|AspireDashboardImageTag' -- eng/Versions.props
   git log -5 --oneline -- .github/policies/milestoneAssignment.prClosed.yml
   git show <relevant-commit>
   ```

   Useful precedents are #19139 (`be77aa36da`, 13.5 to 13.6) and #20037
   (`1fd72c6d05`, 13.6 to 14.0 with an unpublished dashboard-image workaround).
   Prefer the latest applicable history over copying an old diff blindly.
4. Confirm the exact target milestone exists and is open in GitHub. If it is
   missing or closed, ask before creating or reopening it; do not leave the policy
   pointing at a milestone the bot cannot assign.

## Run the deterministic edit

Use the bundled C# file-based app with the repository's .NET SDK rather than
generating ad-hoc editing code.
From the repository root, substitute the requested version, target branch, and
confirmed open milestone:

```bash
dotnet run --file .agents/skills/bump-aspire-version/BumpVersion.cs -- 17.0 --branch main --milestone 17.0
```

`--branch` is the PR's target branch, not the feature branch. `--milestone` is
explicit because servicing milestones can differ from product versions (for
example, product `13.6.1` can use milestone `13.6.x`). The script does not create,
reopen, or query GitHub milestones; confirm availability in the previous step.

The script updates all three version components (`X.Y` means `X.Y.0`) and exactly
one matching branch's milestone rule. It validates the expected file structure
before writing either file and fails on missing or ambiguous matches. It preserves
formatting, line endings, unrelated rules, and all other properties. Repeating the
same command makes no further changes. If the file layout changes, update the
script rather than bypassing its checks.

Prerelease/stabilization settings and the dashboard-image pin remain unchanged:
a product version bump neither stabilizes packages nor publishes a dashboard image.
Review any version-specific comments separately. Do not change other release-branch
rules, dependencies, SDKs, generated APIs, or sample versions without explicit scope.
The old `.github/workflows/milestone-assignment.yml` was removed in #20390 in favor
of the policy bot; do not recreate it.

## Validate

Review `git diff --check` and the complete diff. Confirm only the intended version
properties, milestone assignment, and any directly related comments changed.

Confirm the resulting version components and milestone title match the request.
Run the edit command again and confirm it reports both files unchanged.

Check the diff separately to confirm prerelease settings and the dashboard-image
pin were preserved. If the change extends beyond metadata, run focused validation
for that behavior and follow the repository's SDK setup instructions when needed.

## Create the PR when requested

Use the `create-pr` skill and the repository PR template. Commit only the intended
files, include required commit trailers, push without force, and use the available
PR creation tool when the environment requires it. Describe the old and new
versions, milestone routing, unchanged prerelease status, any retained
dashboard-image override, and the validation actually performed.
Do not claim a full build or test run unless
one was performed. Do not merge automatically.

More from microsoft/aspire

SkillDescription
api-reviewReviews .NET API surface area PRs for design guideline violations. Analyzes api/*.cs file diffs, applies review rules from .NET Framework Design Guidelines and Aspire conventions, and attributes findings to the developer who introduced each API (via git blame). Use this when asked to review API surface area changes.
azdo-internalExpert knowledge for triggering, monitoring, and validating changes to the Aspire internal Azure DevOps pipeline (microsoft-aspire, definition 1602) on dnceng/internal. Use when asked to trigger an internal/AzDO build, check pipeline/build status, push to the internal mirror, or validate eng/ pipeline (eng/pipelines/azure-pipelines.yml / release pipeline) changes for the microsoft/aspire repository.
backport-prBackports a merged PR to a release branch by triggering the /backport bot, waiting for the bot-created PR, and filling in the shiproom template (Customer Impact, Testing, Risk, Regression?). Use when asked to: backport a PR, port a fix to a release branch, fill in a backport template, prepare a backport for shiproom review.
ci-test-failuresGuide for diagnosing GitHub Actions test failures, extracting failed tests from runs, and creating or updating failing-test issues. Use this when asked to investigate GitHub Actions test failures, download failure logs, create failing-test issues, or debug CI issues.
cli-channel-debuggingEmulates any Aspire CLI build identity (channel, version, commit, package source) from a locally built CLI using ASPIRE_CLI_* environment variables and the install sidecar, so a reported bug can be reproduced and fixed locally without going through the install/PR loop. Use this when asked to reproduce channel/version/quality-specific CLI behavior, simulate a daily/staging/stable/PR build locally, or decide which override knobs to set for a given scenario.
cli-e2e-testingUse when creating, modifying, debugging, or reviewing Aspire CLI end-to-end tests that use Hex1b terminal automation under tests/Aspire.Cli.EndToEnd.Tests/.
connection-propertiesSpecialized agent for creating and improving Connection Properties in Aspire resource and README files
dashboard-testingGuide for writing tests for the Aspire Dashboard. Use this when asked to create, modify, or debug dashboard unit tests or Blazor component tests.
dependency-updateGuides dependency version updates by checking nuget.org for latest versions, triggering the dotnet-migrate-package Azure DevOps pipeline, and monitoring runs. Use this when asked to update external NuGet dependencies.
deployment-e2e-testingGuide for writing Aspire deployment end-to-end tests. Use this when asked to create, modify, or debug deployment E2E tests that deploy to Azure.