Skip to main content

update-aspire

Update Aspire version across CI, NuGet constants, proto file, and all test/sample projects

Source facts

Repository
JetBrains/aspire-plugin
Last source activity
October 1, 2026 at 10:51
Detected SKILL.md language
English
Stars
96
Forks
6

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
update-aspire
description
Update Aspire version across CI, NuGet constants, proto file, and all test/sample projects
user_invocable
true
# Update Aspire Version Performs a full Aspire version bump: CI templates, NuGet package constants, upstream proto file, and all test/sample projects. ## Input The user must provide the target Aspire version in full semver form (e.g. `13.3.0`). If not provided as an argument, ask for it. ## Steps 1. **Update CI template version.** Edit `.github/workflows/build.yml`. Find the line `dotnet new install Aspire.ProjectTemplates@...` and replace the version with the target version. 2. **Update NuGet package versions.** Edit `rider/src/main/kotlin/com/jetbrains/aspire/rider/orchestration/NuGetPackages.kt`. For each package listed in the file, look up its latest version on nuget.org (use WebSearch or WebFetch to check `https://www.nuget.org/packages/{PACKAGE_NAME}`). Update the version constants accordingly. Note: some packages (e.g. `Aspire.Hosting.Maui`) may only have preview versions — use the latest available. 3. **Fetch upstream proto file.** The tag format is `v{VERSION}` using the full semver (e.g. `v13.3.0`, not `v13.3`). The checked-in destination is `core/src/main/protos/dashboard_service.proto`. On Windows, invoke `curl.exe` directly. Use `curl` to download the file directly — do not use WebFetch, as it will refuse to reproduce the raw file content verbatim: ``` curl.exe -fsSL "https://raw.githubusercontent.com/microsoft/aspire/refs/tags/v{VERSION}/src/Aspire.Hosting/Dashboard/proto/dashboard_service.proto" \ -o core/src/main/protos/dashboard_service.proto ``` 4. **Update the `aspire` CLI.** Do not assume Aspire is registered as a dotnet global tool or installed at `~/.dotnet/tools/aspire`. On Windows, locate it with `Get-Command aspire`; it may resolve to `C:\\Users\\<user>\\.aspire\\bin\\aspire.exe` even when `./dotnet.cmd tool list --global` does not list Aspire. Check the installed version with `aspire --version`, then update it without a channel-selection prompt: ``` aspire update --self --channel stable --non-interactive ``` The direct `aspire update --self` command can fail in a non-interactive terminal because it attempts to show that prompt. 5. **Run `aspire update` in test and sample projects.** List all immediate subdirectories in: - `testData/solutions/` - `sampleProjects/` For every subdirectory, change into it and run `aspire update --non-interactive --yes`. Note: `--non-interactive` requires `--yes` (`-y`) to be specified as well, otherwise the command fails. Run them sequentially (each command depends on shared NuGet state). Use a 10-minute total timeout. If the command runner has a shorter per-command limit, split the sequential sweep into smaller batches; do not run projects concurrently. Some directories (e.g. pure ASP.NET Core, Worker, MAUI, or Azure Functions solutions) contain no Aspire AppHost and will report "no AppHost project files were detected" — this is expected and should be listed as "Skipped (no AppHost)" in the report, not as a failure. CLI wording for no-AppHost projects varies by version, so do not depend on one exact message string when classifying a skipped result. 6. **Verify the Aspire update with integration tests.** This skill permits agents to run JVM integration tests relevant to the Aspire update without a separate user request. Install `Aspire.ProjectTemplates` at the target version in the .NET environment Rider uses (`./dotnet.cmd new install Aspire.ProjectTemplates@{VERSION}`). See `docs/agents/testing.md` for the MAUI template prerequisite. Start with the orchestration tests, which depend on the installed Aspire templates and package versions: ``` ./gradlew :test --tests "com.jetbrains.aspire.integration.AspireOrchestrationTests" ``` Run other affected integration test classes with explicit `--tests` filters when needed. Fix regressions and review generated output before updating gold files; rerun the affected tests after changes. Report test results and any environment blockers. This permission is limited to relevant integration tests; running the full suite or `check` still requires an explicit user request. 7. **Report results.** Show the user a summary table listing: - CI template version: old → new - Each NuGet package: old version → new version - Proto file: updated or not - Each project directory: aspire update succeeded, skipped (no AppHost), or failed - Integration tests: passed, failed, or blocked, with the affected test classes
View on GitHub