-
Notifications
You must be signed in to change notification settings - Fork 90
feat(vscode): add container support for extension dependencies - [Do not merge] #8229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
…trotrejo/containerExtension
🤖 AI PR Validation ReportPR Review ResultsThank you for your submission! Here's detailed feedback on your PR title and body compliance:✅ PR Title
✅ Commit Type
✅ Risk Level
✅ What & Why
✅ Impact of Change
✅ Test Plan
✅ Contributors
✅ Screenshots/Videos
Summary Table
All required sections are complete and correct. This PR passes title and body review. If this PR is no longer "do not merge" status, please update the title before merging. If this change impacts rollout/documentation, consider communicating out to relevant users/developers ahead of time due to the scope/breaking nature of containerization. Last updated: Mon, 13 Oct 2025 18:43:05 GMT |
…trotrejo/containerExtension
…trotrejo/containerExtension
…trotrejo/containerExtension
…trotrejo/containerExtension
There was a problem hiding this 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 implements containerization support for the Azure Logic Apps VS Code extension while removing deprecated dependency management features. The changes streamline the extension by eliminating binary validation and installation functionality, replacing it with Docker container support for development environments.
Key changes:
- Removes binary dependency management system for Node.js, .NET SDK, and Azure Functions Core Tools
- Adds Docker container support with devcontainer configuration
- Simplifies extension configuration by removing numerous settings and commands related to binary validation
Reviewed Changes
Copilot reviewed 52 out of 52 changed files in this pull request and generated 7 comments.
Show a summary per file
File | Description |
---|---|
apps/vs-code-designer/src/package.json | Removes dependency validation commands and configuration settings |
apps/vs-code-designer/src/onboarding.ts | Deletes the onboarding module that handled binary installation |
apps/vs-code-designer/src/main.ts | Replaces binary installation with direct design-time API startup |
apps/vs-code-designer/src/container/ | Adds Docker container configuration files for development |
Multiple utility files | Updates hardcoded binary paths to use standard command names |
apps/vs-code-designer/src/app/utils/dotnet/executeDotnetTemplateCommand.ts
Show resolved
Hide resolved
apps/vs-code-designer/src/app/commands/workflows/unitTest/runUnitTest.ts
Outdated
Show resolved
Hide resolved
apps/vs-code-designer/src/app/commands/workflows/switchToDotnetProject.ts
Outdated
Show resolved
Hide resolved
apps/vs-code-designer/src/app/commands/initProjectForVSCode/initScriptProjectStep.ts
Outdated
Show resolved
Hide resolved
…trotrejo/containerExtension
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 94 out of 94 changed files in this pull request and generated 4 comments.
apps/vs-code-designer/src/app/commands/createWorkspace/createWorkspaceSteps/devcontainerStep.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.
…trotrejo/containerExtension
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 100 out of 100 changed files in this pull request and generated 7 comments.
{ | ||
label: 'generateDebugSymbols', | ||
command: '${config:azureLogicAppsStandard.dotnetBinaryPath}', | ||
command: 'dotnet', |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider making these command names configurable through constants to maintain consistency across the codebase and ease future updates.
Copilot uses AI. Check for mistakes.
export const managementApiPrefix = 'runtime/webhooks/workflow/api/management'; | ||
export const designerStartApi = 'runtime/webhooks/workflow/api/management/operationGroups'; |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The removal of leading slash from API paths could cause issues when concatenating URLs. Ensure all usages properly handle the path joining.
export const managementApiPrefix = 'runtime/webhooks/workflow/api/management'; | |
export const designerStartApi = 'runtime/webhooks/workflow/api/management/operationGroups'; | |
export const managementApiPrefix = '/runtime/webhooks/workflow/api/management'; | |
export const designerStartApi = '/runtime/webhooks/workflow/api/management/operationGroups'; |
Copilot uses AI. Check for mistakes.
const solutionName = 'Tests'; // This will create "Tests.sln" | ||
const solutionFile = path.join(testsDirectory, `${solutionName}.sln`); | ||
const dotnetBinaryPath = getGlobalSetting(dotNetBinaryPathSettingKey); | ||
const dotnetCommand = 'dotnet'; |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] This hardcoded command should use a constant from the constants file to maintain consistency with other command references.
Copilot uses AI. Check for mistakes.
const versions = '8'; | ||
|
||
// Prioritize "LTS", then "Current", then "Preview" | ||
const netVersions: string[] = ['8', '6', '3', '2', '9', '10']; | ||
const netVersions: string[] = ['8', '6']; |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The hardcoded version strings should be moved to constants to make version management more maintainable.
Copilot uses AI. Check for mistakes.
export async function getPublicUrl(url: string) { | ||
const local = vscode.Uri.parse(url); | ||
const external = await vscode.env.asExternalUri(local); | ||
return external.toString(); // use this in webviews, auth callbacks, logs, etc. | ||
} |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add JSDoc documentation explaining the purpose of this function and when it should be used, especially in container environments.
Copilot uses AI. Check for mistakes.
if (context.workspacePath && context.workspaceFilePath.endsWith('.code-workspace') && fs.existsSync(context.workspaceFilePath)) { | ||
await this.updateWorkspaceFile(context); | ||
context.openBehavior = OpenBehavior.addToWorkspace; | ||
context.openBehavior = OpenBehavior.openInNewWindow; |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The hardcoded change from 'addToWorkspace' to 'openInNewWindow' should be documented or made configurable, as this changes user workflow behavior.
context.openBehavior = OpenBehavior.openInNewWindow; | |
// [NOTE] Default behavior changed from 'addToWorkspace' to 'openInNewWindow'. | |
// To restore previous behavior, set 'context.openBehaviorPreference' to 'OpenBehavior.addToWorkspace'. | |
context.openBehavior = context.openBehaviorPreference ?? OpenBehavior.openInNewWindow; |
Copilot uses AI. Check for mistakes.
function osSupportsVersion(version: FuncVersion | undefined): boolean { | ||
return version !== FuncVersion.v1 || process.platform === Platform.windows; | ||
function osSupportsVersion(): boolean { | ||
return process.platform === Platform.windows; |
Copilot
AI
Oct 10, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function now only returns true for Windows platform, which may cause issues on Linux/Mac container environments where the function is still called.
return process.platform === Platform.windows; | |
// Assume all platforms are supported unless there is a known limitation. | |
return true; |
Copilot uses AI. Check for mistakes.
…trotrejo/containerExtension
Commit Type
Risk Level
What & Why
This PR implements container support for the VS Code Logic Apps extension by removing local dependency management and adding containerized runtime support. The changes include:
dotnet
,func
) instead of configuration-based pathsImpact of Change
Test Plan
Contributors
@ccastrotrejo
Screenshots/Videos
N/A - Backend infrastructure changes