Revert "Support debugging browser and JavaScript apps in 13.2 (#14686)"#15064
Revert "Support debugging browser and JavaScript apps in 13.2 (#14686)"#15064adamint merged 4 commits intodotnet:release/13.2from
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 15064Or
iex "& { $(irm https://raw.githubusercontent.com/dotnet/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 15064" |
There was a problem hiding this comment.
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, andExecutableDebuggerPropertiesAnnotation - Simplifies the
SupportsDebuggingAnnotation/WithDebugSupportinfrastructure to use a plainstringmode instead ofLaunchConfigurationProducerOptions - Moves
ExecutableLaunchConfigurationandProjectLaunchConfigurationintoAspire.Hosting.Dcp.Modeland removes cross-assemblyInternalsVisibleToentries; 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 |
WithVSCodeDebugging → WithDebugging (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.
| public static IResourceBuilder<T> WithDebugSupport<T, TLaunchConfiguration>(this IResourceBuilder<T> builder, Func<string, TLaunchConfiguration> launchConfigurationProducer, string launchConfigurationType, Action<CommandLineArgsCallbackContext>? argsCallback = null) | ||
| where T : IResource |
There was a problem hiding this comment.
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."
WithDebugging has no AspireExport attribute on this branch, so the generated TypeScript SDK doesn't include it, causing tsc to fail.
…" (#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
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