Skip to content

Ts starter updates#15072

Merged
IEvangelist merged 6 commits intorelease/13.2from
ts-starter-updates
Mar 10, 2026
Merged

Ts starter updates#15072
IEvangelist merged 6 commits intorelease/13.2from
ts-starter-updates

Conversation

@IEvangelist
Copy link
Copy Markdown
Member

@IEvangelist IEvangelist commented Mar 9, 2026

Description

Upgrade dated packages in templates, attempt to improve CLI UX for aspire new, make ; consistent across all TS/JS bits, use a shared tsconfig.json approach and correct casing of values, finally sort order templates. Updates tests accordingly.

Fixes #14804

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No
  • Does the change require an update in our Aspire docs?

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 9, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 15072

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 15072"

…eps, improve UX

- Sort templates alphabetically in selection prompt, keeping Empty at bottom
- Fix double-colon in output path prompt
- Show 'cd' instruction in post-creation message when output differs from cwd
- Fix tsconfig.json casing to lowercase and share root config via extends
- Update package.json dependency versions (nodemon, tsx, @types/express)
- Add semicolons consistently across all frontend template files
- Add JSDoc comments with aspire.dev links to apphost.ts and API files
- Apply semicolon fixes to py-starter and ts-cs-starter frontend templates
- Update E2E test helpers for new template ordering and prompt text
@IEvangelist IEvangelist marked this pull request as ready for review March 9, 2026 18:37
Copilot AI review requested due to automatic review settings March 9, 2026 18:37
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 9, 2026

🎬 CLI E2E Test Recordings

The following terminal recordings are available for commit 7b27eed:

Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View Recording
AddPackageWhileAppHostRunningDetached ▶️ View Recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View Recording
AgentInitCommand_DefaultSelection_InstallsSkillOnly ▶️ View Recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View Recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View Recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View Recording
Banner_DisplayedOnFirstRun ▶️ View Recording
Banner_DisplayedWithExplicitFlag ▶️ View Recording
CreateAndDeployToDockerCompose ▶️ View Recording
CreateAndDeployToDockerComposeInteractive ▶️ View Recording
CreateAndPublishToKubernetes ▶️ View Recording
CreateAndRunAspireStarterProject ▶️ View Recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View Recording
CreateAndRunJsReactProject ▶️ View Recording
CreateAndRunPythonReactProject ▶️ View Recording
CreateAndRunTypeScriptStarterProject ▶️ View Recording
CreateEmptyAppHostProject ▶️ View Recording
CreateStartAndStopAspireProject ▶️ View Recording
CreateTypeScriptAppHostWithViteApp ▶️ View Recording
DescribeCommandResolvesReplicaNames ▶️ View Recording
DescribeCommandShowsRunningResources ▶️ View Recording
DetachFormatJsonProducesValidJson ▶️ View Recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View Recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View Recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View Recording
LogsCommandShowsResourceLogs ▶️ View Recording
PsCommandListsRunningAppHost ▶️ View Recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View Recording
RestoreGeneratesSdkFiles ▶️ View Recording
SecretCrudOnDotNetAppHost ▶️ View Recording
SecretCrudOnTypeScriptAppHost ❌ Upload failed
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View Recording
StopAllAppHostsFromAppHostDirectory ▶️ View Recording
StopAllAppHostsFromUnrelatedDirectory ❌ Upload failed
StopNonInteractiveMultipleAppHostsShowsError ▶️ View Recording
StopNonInteractiveSingleAppHost ▶️ View Recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View Recording
TypeScriptAppHostWithProjectReferenceIntegration ▶️ View Recording

📹 Recordings uploaded automatically from CI run #22906913749

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the TypeScript starter (Express/React) template and aligns the aspire new interactive experience (prompt text + template ordering) for better consistency with other starters.

Changes:

  • Sort aspire new template choices alphabetically (with “Empty” templates intended to remain last) and update E2E navigation accordingly.
  • Normalize the “Enter the output path” prompt text (remove embedded colon) and update docs/tests/localization artifacts.
  • Refresh TS starter template config/dependencies and apply consistent formatting across TS/JS template files; add inline documentation and OTEL bootstrap import.

Reviewed changes

Copilot reviewed 40 out of 40 changed files in this pull request and generated 16 comments.

Show a summary per file
File Description
tests/Shared/Hex1bTestHelpers.cs Updates prompt matching and template selection navigation for reordered template list.
tests/Aspire.Deployment.EndToEnd.Tests/TypeScriptExpressDeploymentTests.cs Adjusts interactive selection key presses/commentary due to new template ordering and prompt text.
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/vite.config.ts Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/src/main.tsx Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/src/App.tsx Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/eslint.config.js Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-py-starter/frontend/vite.config.ts Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-py-starter/frontend/src/main.tsx Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-py-starter/frontend/src/App.tsx Formatting consistency (semicolons).
src/Aspire.ProjectTemplates/templates/aspire-py-starter/frontend/eslint.config.js Formatting consistency (semicolons).
src/Aspire.Cli/Templating/Templates/ts-starter/tsconfig.json Normalizes TS compiler option casing.
src/Aspire.Cli/Templating/Templates/ts-starter/package.json Updates devDependency versions for the TS starter root.
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/vite.config.ts Formatting consistency (semicolons).
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/src/main.tsx Formatting consistency (semicolons).
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/src/App.tsx Formatting consistency (semicolons).
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/eslint.config.js Formatting consistency (semicolons).
src/Aspire.Cli/Templating/Templates/ts-starter/apphost.ts Adds explanatory JSDoc and clarifies resource wiring/publish behavior.
src/Aspire.Cli/Templating/Templates/ts-starter/api/tsconfig.json Inherits root tsconfig and keeps API-specific outDir.
src/Aspire.Cli/Templating/Templates/ts-starter/api/src/instrumentation.ts Adds documentation header for OTEL instrumentation module.
src/Aspire.Cli/Templating/Templates/ts-starter/api/src/index.ts Ensures instrumentation is imported first; adds brief endpoint doc.
src/Aspire.Cli/Templating/Templates/ts-starter/api/package.json Updates Express type defs and tsx version.
src/Aspire.Cli/Templating/CliTemplateFactory.cs Adds post-creation guidance (cd + aspire run) helper.
src/Aspire.Cli/Templating/CliTemplateFactory.TypeScriptStarterTemplate.cs Uses shared post-creation guidance helper.
src/Aspire.Cli/Templating/CliTemplateFactory.EmptyTemplate.cs Uses shared post-creation guidance helper.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.zh-Hant.xlf Updates EnterTheOutputPath source string (colon removed) and marks translations for review.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.zh-Hans.xlf Same as above for zh-Hans.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.tr.xlf Same as above for tr.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.ru.xlf Same as above for ru.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.pt-BR.xlf Same as above for pt-BR.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.pl.xlf Same as above for pl.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.ko.xlf Same as above for ko.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.ja.xlf Same as above for ja.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.it.xlf Same as above for it.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.fr.xlf Same as above for fr.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.es.xlf Same as above for es.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.de.xlf Same as above for de.
src/Aspire.Cli/Resources/xlf/NewCommandStrings.cs.xlf Same as above for cs.
src/Aspire.Cli/Resources/NewCommandStrings.resx Updates the base resource string for the output path prompt (colon removed).
src/Aspire.Cli/Commands/NewCommand.cs Sorts template choices for the interactive prompt.
docs/using-latest-daily.md Updates the documented wizard prompt output path line to the new format.

You can also share your feedback on Copilot code review. Take the survey.

Copy link
Copy Markdown
Member

@JamesNK JamesNK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments in #15072 (review) should be addressed

@dotnet-policy-service dotnet-policy-service bot added needs-author-action An issue or pull request that requires more info or actions from the author. and removed needs-author-action An issue or pull request that requires more info or actions from the author. labels Mar 10, 2026
@IEvangelist IEvangelist enabled auto-merge (squash) March 10, 2026 14:20
@IEvangelist IEvangelist merged commit df090a4 into release/13.2 Mar 10, 2026
493 of 497 checks passed
@IEvangelist IEvangelist deleted the ts-starter-updates branch March 10, 2026 15:11
@dotnet-policy-service dotnet-policy-service bot added this to the 13.2 milestone Mar 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants