-
Notifications
You must be signed in to change notification settings - Fork 30
Add PowerShell version logging for activation debugging #851
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
Conversation
Co-authored-by: eleanorjboyd <[email protected]>
|
@anthonykim1 was this what you were looking for in terms of logging? And is this the right way to do it? Lgtm but don't know the area as well |
| */ | ||
| async function getPowerShellVersion(shell: 'powershell' | 'pwsh'): Promise<string | undefined> { | ||
| try { | ||
| const command = `${shell} -Command "\$PSVersionTable.PSVersion.Major"`; |
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 looks good, I think you can even make it pwsh -c '$PSVersionTable.PSVersion.Major'
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 follow through on comment
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.
Done! Changed to use -c flag in commit 3f8a2b4.
Changed from -Command to -c as suggested in review. Co-authored-by: eleanorjboyd <[email protected]>
Implementing better PowerShell version logging for activation debugging as requested in issue #706. The issue stems from the PR review comment (microsoft/vscode-python-environments#693 (comment)) suggesting that logging PowerShell version information would be valuable for debugging activation failures, especially given the differences between Windows PowerShell 5.x and PowerShell 7+. ## Changes Made: - [x] Analyze current PowerShell activation flow in pwshStartup.ts and pwshEnvs.ts - [x] Examine existing logging patterns and utilities - [x] Test current build/compile state of project - [x] Create utility function to detect PowerShell version via `$PSVersionTable.PSVersion.Major` - [x] Add PowerShell version logging to relevant activation code paths - [x] Add version logging for both conda and non-conda activation scenarios - [x] Ensure logging follows existing patterns (traceInfo/traceVerbose) - [x] Test changes and verify proper logging output - [x] Use shorter -c flag instead of -Command for PowerShell commands ## Implementation Details: 1. **Added `getPowerShellVersion()` function** - Detects PowerShell major version using `$PSVersionTable.PSVersion.Major` command with `-c` flag 2. **Enhanced installation logging** - Now logs PowerShell version when shells are detected (e.g., "SHELL: pwsh is installed (version 7)") 3. **Enhanced activation script error messages** - PowerShell errors now include version info (e.g., "Failed to activate Python environment (PowerShell 7): error details") ## Testing: - All existing unit tests pass (128 passing) - Code compiles successfully with no lint errors - Manual testing confirms PowerShell version detection works correctly These changes provide better diagnostic information for debugging PowerShell activation issues without affecting existing functionality. Fixes #706. <!-- START COPILOT CODING AGENT TIPS --> --- 💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click [here](https://survey3.medallia.com/?EAHeSx-AP01bZqG0Ld9QLQ) to start the survey. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: eleanorjboyd <[email protected]>
Implementing better PowerShell version logging for activation debugging as requested in issue #706.
The issue stems from the PR review comment (#693 (comment)) suggesting that logging PowerShell version information would be valuable for debugging activation failures, especially given the differences between Windows PowerShell 5.x and PowerShell 7+.
Changes Made:
$PSVersionTable.PSVersion.MajorImplementation Details:
getPowerShellVersion()function - Detects PowerShell major version using$PSVersionTable.PSVersion.Majorcommand with-cflagTesting:
These changes provide better diagnostic information for debugging PowerShell activation issues without affecting existing functionality.
Fixes #706.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.