update-aspire
Update Aspire version across CI, NuGet constants, proto file, and all test/sample projects
معلومات المصدر
- المستودع
- JetBrains/aspire-plugin
- آخر نشاط في المصدر
- ١ أكتوبر ٢٠٢٦ في ١٠:٥١
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ٩٦
- التفرعات
- ٦
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- 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
عرض على GitHub