Skip to content

Revert "Support debugging browser and JavaScript apps in 13.2 (#14686)"#15064

Merged
adamint merged 4 commits intodotnet:release/13.2from
adamint:revert/14686
Mar 9, 2026
Merged

Revert "Support debugging browser and JavaScript apps in 13.2 (#14686)"#15064
adamint merged 4 commits intodotnet:release/13.2from
adamint:revert/14686

Conversation

@adamint
Copy link
Member

@adamint adamint commented Mar 9, 2026

Description

Reverts #14686 (Support debugging browser and JavaScript apps in 13.2).

This revert removes the extensible debug support infrastructure and all JavaScript/browser debugging APIs added in that PR. A follow-up PR will re-implement JavaScript debugging with a minimal approach that doesn't add new public APIs.

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
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
    • No
  • Does the change require an update in our Aspire docs?
    • Yes
    • No

Copilot AI review requested due to automatic review settings March 9, 2026 13:08
@adamint adamint requested a review from mitchdenny as a code owner March 9, 2026 13:08
@github-actions
Copy link
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 -- 15064

Or

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

Copy link
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

This PR reverts PR #14686, which had added an extensible debug support infrastructure including IDE-agnostic public APIs (WithDebugging, WithBrowserDebugger, etc.) and internal debug property classes. The stated goal is to re-implement JavaScript debugging in a follow-up PR with a minimal approach that doesn't add new public APIs.

Changes:

  • Removes all debug adapter property types (DebugAdapterProperties, VSCodeDebuggerPropertiesBase, IDE-specific subclasses), browser launch configurations, and ExecutableDebuggerPropertiesAnnotation
  • Simplifies the SupportsDebuggingAnnotation/WithDebugSupport infrastructure to use a plain string mode instead of LaunchConfigurationProducerOptions
  • Moves ExecutableLaunchConfiguration and ProjectLaunchConfiguration into Aspire.Hosting.Dcp.Model and removes cross-assembly InternalsVisibleTo entries; removes connection-lost exception handling from the extension/CLI layer

Reviewed changes

Copilot reviewed 48 out of 48 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/Aspire.Hosting/ResourceBuilderExtensions.cs WithDebugSupport simplified signature (now public), moved to earlier in file
src/Aspire.Hosting/SupportsDebuggingAnnotation.cs Removed LaunchConfigurationProducerOptions; annotator now takes plain string mode
src/Aspire.Hosting/Dcp/DcpExecutor.cs Launch config annotator called in PreparePlainExecutables/PrepareProjectExecutables (not deferred to CreateExecutableAsync)
src/Aspire.Hosting/Dcp/Model/ExecutableLaunchConfiguration.cs New file: simpler ExecutableLaunchConfiguration + ProjectLaunchConfiguration in DCP model namespace
src/Aspire.Hosting/Dcp/Model/RunSessionInfo.cs Consolidated RunSessionInfo into DCP model layer
src/Aspire.Hosting/ProjectResourceBuilderExtensions.cs Uses WithDebugSupport directly instead of WithVSCodeDebugging; removed VS Code-specific helpers
src/Aspire.Hosting/Utils/ExtensionUtils.cs Renamed from ResourceDebugSupportExtensions; changed to private method visibility
src/Aspire.Hosting/Backchannel/BackchannelLoggerProvider.cs Removed IBackchannelLoggerProvider interface
src/Aspire.Hosting/DistributedApplicationBuilder.cs Removed IBackchannelLoggerProvider DI registration
src/Aspire.Hosting.Python/PythonAppResourceBuilderExtensions.cs WithVSCodeDebuggingWithDebugging (now public), removed VS Code-specific debugger properties
src/Aspire.Hosting.Python/PythonAppLaunchConfiguration.cs Removed VSCodePythonDebuggerProperties and related types
src/Aspire.Hosting.JavaScript/JavaScriptHostingExtensions.cs Removed all debugging methods (WithVSCodeDebugging, WithBrowserDebugger, etc.)
src/Aspire.Hosting/Aspire.Hosting.csproj Removed InternalsVisibleTo for JavaScript/Python packages
src/Aspire.Hosting.JavaScript/Aspire.Hosting.JavaScript.csproj Removed InternalsVisibleTo for test project
extension/src/debugger/debuggerExtensions.ts Reverted to non-nullable debuggerExtension parameter; removed debugger_properties handling
extension/src/capabilities.ts Removed node and browser capabilities
tests/Aspire.Hosting.Tests/DebuggerPropertiesAnnotationTests.cs Removed entire test file (no longer applicable)
tests/Aspire.Hosting.Tests/Dcp/DcpExecutorTests.cs Simplified to use ExecutableLaunchConfiguration directly
tests/Aspire.Hosting.Python.Tests/AddPythonAppTests.cs Removed debug support test section
tests/Aspire.Hosting.JavaScript.Tests/AddNodeAppTests.cs Removed debug support test section

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

Comment on lines +3161 to +3162
public static IResourceBuilder<T> WithDebugSupport<T, TLaunchConfiguration>(this IResourceBuilder<T> builder, Func<string, TLaunchConfiguration> launchConfigurationProducer, string launchConfigurationType, Action<CommandLineArgsCallbackContext>? argsCallback = null)
where T : IResource
Copy link

Copilot AI Mar 9, 2026

Choose a reason for hiding this comment

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

The WithDebugSupport method at line 3161 is a public static extension method on IResourceBuilder<T> but is missing either [AspireExport] or [AspireExportIgnore]. Based on the ASPIRE014 analyzer rule (which applies to all public static extension methods on IDistributedApplicationBuilder or IResourceBuilder<T>), and the repository's TreatWarningsAsErrors=true setting, this will cause a build failure.

Since this method is internal infrastructure intended only for use within Aspire hosting packages (and marked [Experimental("ASPIREEXTENSION001")]), it should be decorated with [AspireExportIgnore(Reason = "...")] to suppress the ASPIRE014 warning. An appropriate reason might be: "Debug support infrastructure — not intended for polyglot app hosts."

Copilot uses AI. Check for mistakes.
adamint added 3 commits March 9, 2026 15:35
WithDebugging has no AspireExport attribute on this branch, so the
generated TypeScript SDK doesn't include it, causing tsc to fail.
@adamint adamint enabled auto-merge (squash) March 9, 2026 19:44
@adamint adamint merged commit 6d61e03 into dotnet:release/13.2 Mar 9, 2026
748 of 751 checks passed
@dotnet-policy-service dotnet-policy-service bot added this to the 13.2 milestone Mar 9, 2026
Copilot AI pushed a commit that referenced this pull request Mar 10, 2026
…" (#15064)

* Revert "Support debugging browser and JavaScript apps in 13.2 (#14686)"

This reverts commit 514d4bf.

* Remove withDebugging() call from Python ValidationAppHost

WithDebugging has no AspireExport attribute on this branch, so the
generated TypeScript SDK doesn't include it, causing tsc to fail.

* Regenerate CompatibilitySuppressions.xml for API compat
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.

3 participants