Skip to content
This repository was archived by the owner on Oct 23, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
330 commits
Select commit Hold shift + click to select a range
0e6cec0
feat: Add copy path to Project and Environments (#170)
karthiknadig Feb 7, 2025
1576c4b
Update README.md (#174)
cwebster-99 Feb 10, 2025
eec0bfa
fix: wrap the experimental shell type API with try-catch (#175)
karthiknadig Feb 10, 2025
0d8d470
Move description of env managers to tooltip (#180)
karthiknadig Feb 11, 2025
6c81972
fix: use '/' delimiter on windows when using gitbash. (#178)
karthiknadig Feb 12, 2025
489897b
bug: reduce noise in the environments view (#183)
karthiknadig Feb 12, 2025
fb36b37
Conform to new shell env API shape (#192)
anthonykim1 Feb 20, 2025
750f901
Fix broken link to `examples` in `README.md` (#197)
InSyncWithFoo Feb 23, 2025
6f9d7e7
fix: cannot read properties of undefined reading 'value' (#211)
karthiknadig Mar 5, 2025
df3719e
fix: cannot register tools starting with `vscode_` (#209)
karthiknadig Mar 5, 2025
5b2cae3
feat: add option to skip package installation in `venv` and `conda` i…
karthiknadig Mar 7, 2025
1ba28ae
bug: hide duplicate command from the command palette (#217)
karthiknadig Mar 13, 2025
12389de
feat: add remove environment command to project view (#216)
karthiknadig Mar 13, 2025
da3ed45
fix: Shell Type API updated in core (#221)
karthiknadig Mar 20, 2025
ac59aa3
fix: use vsceTarget to rustTarget conversion when pulling `pet` (#225)
karthiknadig Mar 21, 2025
1672696
fix: UX when installing packages (#222)
karthiknadig Mar 21, 2025
637751c
fix: package refresh issue when installed externally (#253)
karthiknadig Mar 26, 2025
f0e0893
Bump tar-fs from 2.1.1 to 2.1.2 (#255)
dependabot[bot] Mar 31, 2025
aed4e53
chore: refactor common shell execution code (#181)
karthiknadig Apr 2, 2025
649b865
fix: use '&' when sending commands using `sendtext` to powershell (#262)
karthiknadig Apr 7, 2025
cf73da4
fix: for venv common packages shows installed packages pre ticked (#263)
karthiknadig Apr 7, 2025
e516d15
fix: filter telemetry from in development extensions (#264)
karthiknadig Apr 7, 2025
eeed4cd
feat: add "Quick Create" option for venvs (#265)
karthiknadig Apr 7, 2025
3036ce8
feat: telemetry when using quick create (#269)
karthiknadig Apr 7, 2025
34579c8
fix: bug with `filePath` when finding calling extension (#271)
karthiknadig Apr 8, 2025
7d88d2f
feat: improve package management (#279)
karthiknadig Apr 10, 2025
2dd272e
fix: avoid generating multiple events for the same environment (#277)
karthiknadig Apr 10, 2025
6c78b2f
fix: ensure script casing match for activations (#287)
karthiknadig Apr 11, 2025
ee0a207
feat: Add support for Quick Create (#281)
karthiknadig Apr 11, 2025
72a7431
fix: clarify that `showSkipOption` also applies to uninstallations (#…
InSyncWithFoo Apr 11, 2025
aed950b
fix: ensure 'base' conda environment is not in a group (#290)
karthiknadig Apr 11, 2025
2aa1361
fix: id generation for env and pkg managers (#283)
karthiknadig Apr 11, 2025
1351ed8
Copilot tools (#280)
eleanorjboyd Apr 11, 2025
7989aa6
add handling for notebook-cells as inputs to API (#293)
eleanorjboyd Apr 11, 2025
ea509ac
fix: ensure quick create is handled when using command API (#295)
karthiknadig Apr 14, 2025
de653f9
fix: show Manage Packages in Command Palette (#296)
karthiknadig Apr 14, 2025
e82d4b5
Add fix to support project root item in project getter (#298)
eleanorjboyd Apr 14, 2025
6af3380
fix: quick Create ux tweaks and clean up (#308)
karthiknadig Apr 15, 2025
e0a261f
update for existing project creation (#306)
eleanorjboyd Apr 16, 2025
e87c8b2
feat: add telemetry for install/uninstall packages (#302)
karthiknadig Apr 17, 2025
42aeda0
feat: telemetry for select env and package managers (#300)
karthiknadig Apr 17, 2025
9f28af3
fix: handling installables selection (#315)
karthiknadig Apr 18, 2025
b5bf018
fix: detect terminal `pip installs` and refresh ui (#316)
karthiknadig Apr 18, 2025
813c1bf
fix: show back button with create environment (#323)
karthiknadig Apr 22, 2025
047eb91
fix: ensure path input to copilot tools correctly converted to URI (#…
karthiknadig Apr 22, 2025
fd17e1d
Update tool names and args (#332)
DonJayamanne Apr 23, 2025
8dc90f2
Include .nvmrc, commonly used in vscode & VSCode extensions (#333)
DonJayamanne Apr 23, 2025
cbc2b11
add project quickPick (#335)
eleanorjboyd Apr 24, 2025
cf322e4
Add startup activation (#196)
karthiknadig Apr 24, 2025
dd655e0
update return type of project create (#334)
eleanorjboyd Apr 24, 2025
a73f6e9
fix: detect if extension is installed and activated for selected env/…
karthiknadig Apr 25, 2025
bf13c27
chore: refactoring and cleanup (#337)
karthiknadig Apr 25, 2025
2c25532
fix: inconsistent shell name display (#339)
karthiknadig Apr 25, 2025
295e55f
switch new project add to create method (#336)
eleanorjboyd Apr 25, 2025
faddd13
Get Notebook Uri from Cell Logic Fix (#312)
eleanorjboyd Apr 25, 2025
7719e43
ignore setting updates on default project selection (#360)
eleanorjboyd Apr 29, 2025
35c74b7
fix: bugs where env deletion or creation are not recorded (#362)
karthiknadig Apr 29, 2025
044b7b5
edits to get environment tool descriptions (#364)
eleanorjboyd Apr 29, 2025
cfae807
Update readme based on most recent updates (#368)
cwebster-99 Apr 30, 2025
586508c
fix: quick create does not show up when there only one provider (#372)
karthiknadig Apr 30, 2025
d749b80
fix project view bugs (#373)
eleanorjboyd Apr 30, 2025
eface53
Expanding setting description for auto activate (#365)
cwebster-99 May 1, 2025
9800738
Reformatting links to media (#374)
cwebster-99 May 1, 2025
5655f27
Update README.md (#382)
cwebster-99 May 5, 2025
4f68642
fix: resolve on filesystem trigger does not use correct `activate` (#…
karthiknadig May 5, 2025
4345a42
fix: multi-root workspace env selection (partial fix) (#375)
karthiknadig May 6, 2025
7e21734
updates to project manager docs and comments (#387)
eleanorjboyd May 8, 2025
f32c2af
fix: bad install step when attempting editable install (#402)
karthiknadig May 12, 2025
676705a
bug fixes autoFindProjects (#405)
eleanorjboyd May 14, 2025
786768f
Updates to display rich and localized tool messages (#407)
DonJayamanne May 14, 2025
0b01aa5
Fixes to getting conda packages and localize tool message (#416)
DonJayamanne May 15, 2025
2451809
Remove unwanted messages (#419)
DonJayamanne May 15, 2025
4aa23a6
add workspace attribute to project setting (#404)
eleanorjboyd May 16, 2025
105dd3d
feat: add `pyenv` support (#409)
karthiknadig May 16, 2025
d1c1b74
Create project branch (#424)
eleanorjboyd May 20, 2025
8b6a3b9
Improve shell startup documentation and logic (#403)
karthiknadig May 20, 2025
fe1c916
create project with 723 style script (#428)
eleanorjboyd May 20, 2025
c0ac283
remove duplicate exec in dropdown selector (#433)
eleanorjboyd May 20, 2025
a32a102
fixes for add pkg manually (#439)
eleanorjboyd May 21, 2025
f3583e1
remove un-intended comment (#442)
eleanorjboyd May 21, 2025
aa37958
fix: for `pyenv` spinning forever and crashes (#444)
karthiknadig May 22, 2025
a26df66
Hide "Add Python Project" context menu for already selected projects …
Copilot May 22, 2025
c71b58f
Fix Add Python Project via context menu to directly add file/folder (…
Copilot May 22, 2025
bee06aa
Add notification when re-selecting the same workspace environment (#441)
Copilot May 22, 2025
4ab83a7
Update environment selection tooltips from "Workspace" to "Project" (…
Copilot May 22, 2025
7f43c3d
Move packages to top level under each environment (#435)
Copilot May 22, 2025
280b042
Add shell startup revert command (#446)
cwebster-99 May 23, 2025
f195812
Poetry support (#445)
karthiknadig May 27, 2025
92f6459
Port Python tools, and create a tool to quickly create a virtual env …
DonJayamanne May 28, 2025
b2fc494
feat: enhance project creation with quick create option in new projec…
eleanorjboyd May 29, 2025
cdfc07a
Remove lm tools (#452)
DonJayamanne May 29, 2025
323db0c
fix: ensure env managers are using workspace persistent state (#455)
karthiknadig May 29, 2025
41100f1
remove unused imports for environment tools (#456)
eleanorjboyd May 30, 2025
79d9a08
move template folder to files folder for build (#463)
eleanorjboyd Jun 3, 2025
b8ca432
chore(deps-dev): bump tar-fs from 2.1.2 to 2.1.3 (#460)
dependabot[bot] Jun 4, 2025
0ce66ec
bug fix: add input validation to showInputBoxWithButtons (#474)
eleanorjboyd Jun 4, 2025
fadfd70
feat: add button from no workspace open in new project flow (#475)
eleanorjboyd Jun 4, 2025
8add2da
Remove unwated `}` in pyenv version (#495)
DonJayamanne Jun 5, 2025
e84df00
bug: support user aborting env deletion via modal venv (#504)
eleanorjboyd Jun 5, 2025
9652c1b
feat: add workspace folder selection for project creation (#501)
eleanorjboyd Jun 5, 2025
414489a
remove refreshManager command and related entries (#515)
eleanorjboyd Jun 10, 2025
63457fa
remove nested globes in envs explorer (#516)
eleanorjboyd Jun 10, 2025
bfe1073
add command to add Python project given resource (#514)
eleanorjboyd Jun 10, 2025
e774105
Fix "Create New" script to open the script file after creation (#499)
Copilot Jun 11, 2025
cd7faf9
chore: update Node.js version to 20.18.1 (#534)
eleanorjboyd Jun 12, 2025
3de30e8
update text for install project deps (#535)
eleanorjboyd Jun 12, 2025
8a362aa
remove python icon from poetry manager (#536)
eleanorjboyd Jun 12, 2025
11d59b6
bug: update quickCreateVenv to avoid name collisions for virtual envi…
eleanorjboyd Jun 12, 2025
6e8e2a0
update to add all new projects to projects view (#537)
eleanorjboyd Jun 13, 2025
384dca6
Add Python Environments report issue command (#525)
Copilot Jun 13, 2025
cd64ec4
Remove project icon (#538)
eleanorjboyd Jun 13, 2025
cc2f49a
support poetry terminal activation required for versions > 2.0.0 (#528)
eleanorjboyd Jun 13, 2025
c666212
Remove "Reset to Default" context menu command (#530)
Copilot Jun 13, 2025
ff2a4ac
fix: set env correctly on package creation (#543)
eleanorjboyd Jun 16, 2025
571f7b7
add check for already set project environments and add documentation …
eleanorjboyd Jun 16, 2025
2d6bbef
remove redundant menu items in python panel (#547)
eleanorjboyd Jun 16, 2025
bae27d6
remove poetry warning popup (#546)
eleanorjboyd Jun 16, 2025
ecb9ebc
fix: adjust cwd for terminal creation & envs creation if project type…
eleanorjboyd Jun 16, 2025
cdce5fd
Fixing GDPR telemetry naming for package management (#551)
cwebster-99 Jun 17, 2025
256c640
fix to ensure new pkg with no env are saved (#554)
eleanorjboyd Jun 17, 2025
1029695
feat: add .gitignore file creation for new Python environments in ven…
eleanorjboyd Jun 18, 2025
d33c732
remove stray console log (#557)
eleanorjboyd Jun 18, 2025
c5f1d2e
adopt setting to override exp and opt in for existing users (#561)
eleanorjboyd Jun 23, 2025
fa43c00
add and update telemetry for bundle release (#559)
eleanorjboyd Jun 24, 2025
88eeb53
Update readme for create project (#562)
cwebster-99 Jun 24, 2025
bafb37a
bug fix to make quick create function from project panel select env (…
eleanorjboyd Jun 24, 2025
0331667
feat: open parent folder of venv after creation (#567)
eleanorjboyd Jun 24, 2025
3533972
update phrasing on different notifications (#556)
eleanorjboyd Jun 25, 2025
a3f3d06
Add "Reveal Project in Explorer" context menu action for Python Proje…
Copilot Jun 25, 2025
1dedab3
feat: enhance environment creation with detailed result handling (#572)
eleanorjboyd Jun 26, 2025
b36447e
remove pep 723 reference from create new flow (#578)
eleanorjboyd Jun 27, 2025
d90c8c9
change hover on tooltip to show full env path (#577)
eleanorjboyd Jun 27, 2025
a7cd343
fixes recursive venv assignment and incorrect multiroot result (#558)
eleanorjboyd Jun 27, 2025
1062e54
fix reveal for venv creation (#580)
eleanorjboyd Jun 27, 2025
825df13
add exp check to disable envs ext if in control (#573)
eleanorjboyd Jun 30, 2025
836b03d
update brace-expansion package to version 2.0.2 (#582)
eleanorjboyd Jun 30, 2025
a574f33
move open script to creator function (#588)
eleanorjboyd Jul 2, 2025
4028ad2
extra logging for exp setting status (#589)
eleanorjboyd Jul 2, 2025
2d5cd5b
Fix select interpreter (#601)
eleanorjboyd Jul 9, 2025
0881b7c
Update README to clarify Python Environments icon visibility during r…
eleanorjboyd Jul 14, 2025
04705c2
Add command to run Python Environment Tool (PET) in terminal (#608)
Copilot Jul 15, 2025
c40fddf
port over workflows from python ext (#614)
eleanorjboyd Jul 18, 2025
04cfdc2
bump to version 1.0.0 to do first stable release (#615)
eleanorjboyd Jul 21, 2025
eb3a171
bump version to 1.1 for dev (#616)
eleanorjboyd Jul 21, 2025
06b9574
update pet (#617)
eleanorjboyd Jul 21, 2025
867bdba
fix async return for runInDedicatedTerminal API (#643)
eleanorjboyd Jul 25, 2025
edaad26
include pyenv virtualenv and enhance display name (#646)
eleanorjboyd Jul 25, 2025
7e31666
Attach & for shell integration enabled pwsh case (#652)
anthonykim1 Jul 25, 2025
abb5cab
bug: fix gitignore add for more scenarios (#627)
eleanorjboyd Jul 25, 2025
2816ed2
bump v1.2.0 (#657)
eleanorjboyd Jul 27, 2025
4773a41
bump v1.3.0 (#659)
eleanorjboyd Jul 27, 2025
3056a83
add quoting logic in runAsTask (#651)
eleanorjboyd Jul 28, 2025
c30ca53
fix: add guard for shell script re-run (#663)
karthiknadig Jul 29, 2025
294a834
Conda hook search (#648)
eleanorjboyd Jul 29, 2025
dc95077
feat: implement caching for conda hook path to optimize filesystem ch…
eleanorjboyd Jul 31, 2025
ae58523
require python envs ext respecting terminal.activateEnvironment (#665)
eleanorjboyd Jul 31, 2025
b282729
Fix l10n localization (#685)
eleanorjboyd Aug 5, 2025
329ec77
Implement environment variable injection into VS Code terminals using…
Copilot Aug 6, 2025
b6efaec
bug fix: Stricter pip list Package Parsing (#698)
sjsikora Aug 9, 2025
2407ed9
Update PET command to include submenu for find and resolve operations…
Copilot Aug 11, 2025
14ec898
chore(deps-dev): bump tmp from 0.2.3 to 0.2.4 (#690)
dependabot[bot] Aug 11, 2025
42a8cd9
fix: enhance conda executable retrieval with path existence checks (#…
almarouk Aug 11, 2025
7242d2f
bug fix: enhance conda environment management with sourcing status an…
eleanorjboyd Aug 11, 2025
da2d83d
add useEnvFile setting (#710)
eleanorjboyd Aug 12, 2025
59bc3c1
remove --live-stream from conda run command (#713)
eleanorjboyd Aug 13, 2025
0e43818
Fix conda copy interpreter path to use actual Python executable inste…
Copilot Aug 14, 2025
c95c312
Fix: Remove global context that caused "add as Python Project" menu t…
Copilot Aug 15, 2025
6b1bf83
Adapt to evaluating activate in core shell integration (#717)
anthonykim1 Aug 15, 2025
80132ea
Remove debris if shell integration is available (#727)
anthonykim1 Aug 15, 2025
b1b50c4
Enhance logging in task execution functions for better debugging (#730)
eleanorjboyd Aug 18, 2025
f209fd8
add quoting, logging, and resolution for run as task and background (…
eleanorjboyd Aug 18, 2025
b81b74f
Clean up for old shell startup scripts (#732)
anthonykim1 Aug 19, 2025
c4e3274
trigger manager refresh on new project creation (#736)
eleanorjboyd Aug 19, 2025
1a1bc5a
Fix to prevent multiple shell startup prompts (#738)
anthonykim1 Aug 19, 2025
edc2cc1
Remove .vscode-test.mjs from bundled extension (#739)
DonJayamanne Aug 20, 2025
d1991a8
bump to version 1.4.0 (#746)
eleanorjboyd Aug 21, 2025
4fc49ef
bump version to 1.5.0 for dev (#747)
eleanorjboyd Aug 21, 2025
dac8f95
update readme with env manager support (#753)
eleanorjboyd Aug 22, 2025
82cdfe0
Adding pipenv support (#750)
eleanorjboyd Aug 22, 2025
e88a0c6
Add resolution for default interpreter and respect defaultInterpreter…
eleanorjboyd Aug 22, 2025
35752ad
update readme for pipenv support (#755)
eleanorjboyd Aug 22, 2025
f5b3118
Improve default interpreter resolution logic to avoid unnecessary upd…
eleanorjboyd Aug 25, 2025
c4afc46
add in version selection for conda env creation (#760)
eleanorjboyd Aug 25, 2025
ed83f07
Log spawning of processes (#756)
DonJayamanne Aug 25, 2025
34452ef
Fix default interpreter path comparison for windows (#769)
karthiknadig Aug 29, 2025
6279bcc
update timing on info-needed workflow (#758)
eleanorjboyd Aug 29, 2025
462ed7e
Bump version to 1.6.0 in package.json and package-lock.json (#777)
eleanorjboyd Sep 1, 2025
2cf641b
Bump version to 1.7.0 in package.json and package-lock.json (#778)
eleanorjboyd Sep 2, 2025
a919afb
bug: surface warning for broken defaultEnvManager and resolve (#787)
eleanorjboyd Sep 5, 2025
2f1e3ae
Fix log message to correctly reference invalid venv environment not c…
Copilot Sep 5, 2025
7449fd4
include venvFolders in search paths (#802)
eleanorjboyd Sep 5, 2025
9463c6d
remove not implemented create function (#804)
eleanorjboyd Sep 5, 2025
9e6a769
fix venvFolder injection in search path for nativeFinder
eleanorjboyd Sep 5, 2025
45faf75
Merge branch 'eleanorjboyd-fix-searchpaths' into upstream-main
karthiknadig Sep 6, 2025
099983d
feat: add GitHub Actions workflow to label "triage-needed" on open (#…
eleanorjboyd Sep 8, 2025
f8806c0
switch to using inspect for setting to check for user explicit value …
eleanorjboyd Sep 8, 2025
574801a
Refresh environment managers automatically when expanding tree node (…
Copilot Sep 8, 2025
386cd8e
revert: remove unnecessary refresh call for environment managers on e…
eleanorjboyd Sep 8, 2025
fa07b5d
Display activate button when a terminal is moved to the editor window…
renan-r-santos Sep 8, 2025
bdcbefe
fix conda env refresh not waiting for promises (#751)
almarouk Sep 8, 2025
f4f9bb9
debt: prepend '[pet]' to log messages for better context in NativePyt…
eleanorjboyd Sep 9, 2025
8678ea7
feat: enable random branch naming for Git (#817)
eleanorjboyd Sep 9, 2025
27c5f26
debt: refactor environment info collection and add helper file (#815)
eleanorjboyd Sep 9, 2025
a2dd4ac
debt: add GitHub Actions workflow for automatic PR label management (…
eleanorjboyd Sep 9, 2025
32a0137
update create api doc string to be more explicit (#819)
eleanorjboyd Sep 10, 2025
5d880ab
sort by version (desc) in conda create picker (#818)
eleanorjboyd Sep 10, 2025
c4e7a44
bug: fix default interpreter resolution with user configuration (#825)
eleanorjboyd Sep 11, 2025
467f9d4
update version to 1.8.0 in package.json and package-lock.json (#827)
eleanorjboyd Sep 11, 2025
391e380
update version dev 1.9.0 (#830)
eleanorjboyd Sep 11, 2025
3e397c4
make virtual environment search default to config not project folders…
eleanorjboyd Sep 12, 2025
088afaf
fix quoting for runInBackground (#849)
eleanorjboyd Sep 20, 2025
1cc72d6
fix: improve environment display name for pipenv (#850)
eleanorjboyd Sep 22, 2025
2f93ee6
docs: add guidelines for creating effective GitHub issues (#857)
eleanorjboyd Sep 22, 2025
6121538
fix: normalize path for UI display when removing virtual environments…
eleanorjboyd Sep 22, 2025
5cb432e
fix: update run command for conda to use python instead of `conda run…
eleanorjboyd Sep 22, 2025
d7a04b5
chore(deps-dev): bump tar-fs from 2.1.3 to 2.1.4 (#867)
dependabot[bot] Sep 27, 2025
5593750
docs: add comprehensive testing guide for unit and extension tests (#…
eleanorjboyd Sep 29, 2025
59bce77
implement MVP of workspace and global searchPaths (#863)
eleanorjboyd Sep 30, 2025
e198285
update testing instruction file (#871)
eleanorjboyd Sep 30, 2025
0e1c49a
add tests for runAsTask (#872)
eleanorjboyd Oct 1, 2025
4bb83fa
bump to v1.10.0 (#878)
eleanorjboyd Oct 1, 2025
624ab43
bump to v1.11.0 dev version (#879)
eleanorjboyd Oct 1, 2025
38dee66
Fix where activation goes missing after user modifying rc scripts (#880)
anthonykim1 Oct 1, 2025
1563492
fix env var clearing (#886)
eleanorjboyd Oct 2, 2025
a0b4c74
Fix quoting logic to escape special characters in exec path (#890)
eleanorjboyd Oct 3, 2025
ad44e33
fix as-any linting warnings (#891)
eleanorjboyd Oct 3, 2025
cc29e87
Revert "fix as-any linting warnings" (#892)
eleanorjboyd Oct 3, 2025
791d712
Fix wsl not activating properly. (#896)
anthonykim1 Oct 6, 2025
91eb244
Refactor quoteStringIfNecessary to fix handling of single shell opera…
eleanorjboyd Oct 7, 2025
fa90963
Fix bug with getAutoActivationType (#897)
eleanorjboyd Oct 7, 2025
82ad744
fix: use ZDOTDIR when available (#900)
karthiknadig Oct 7, 2025
f04c87f
feat: add back button to all necessary flows in UI (#856)
eleanorjboyd Oct 7, 2025
e73b127
fix ts issue (#907)
eleanorjboyd Oct 8, 2025
11670ee
support pipenv path setting (#911)
eleanorjboyd Oct 8, 2025
250f353
Fix missing dev-requirements.txt in workspace dependencies list (#910)
Copilot Oct 8, 2025
4857c2c
add testing for runInBackground (#877)
eleanorjboyd Oct 8, 2025
4448683
Add PowerShell version logging for activation debugging (#851)
Copilot Oct 8, 2025
859a597
add get pipenv from settings to getPipenv function (#914)
eleanorjboyd Oct 8, 2025
561a968
Better handle terminal shell integration check (#915)
anthonykim1 Oct 8, 2025
f93faa5
Add functionality to retrieve Poetry path from settings (#917)
eleanorjboyd Oct 9, 2025
38912d4
Improve shell startup experience using setting value (#921)
anthonykim1 Oct 9, 2025
e1431e5
Bug in create venv flow with selecting skipping package installation …
eleanorjboyd Oct 10, 2025
d7cc9e3
Add comprehensive unit tests for execUtils.ts (#873)
Copilot Oct 14, 2025
994f092
Allow undefined uri in api.getEnvironmentVariables (#943)
eleanorjboyd Oct 17, 2025
def4573
update api documentation (#945)
eleanorjboyd Oct 17, 2025
a784412
fix linting and update eslint rule (#946)
eleanorjboyd Oct 17, 2025
a10c3a0
Add copilot instructions template in .github/instructions
Oct 23, 2025
478aa6c
Add D&R Protocol doc (.github/instructions/DnR-protocol.md)
Oct 23, 2025
f3a59a5
Add repo analysis report (D&R) — local-scan-based
Oct 23, 2025
097fb39
Add script to list local repos (scripts/list-local-repos.sh)
Oct 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/instructions/DnR-protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
## Deconstruction & Re-architecture Protocol (D&R)

Mục đích
- D&R là một quy trình 3 giai đoạn để phân tích mọi input (từ một từ tới bản kế hoạch) và chuyển đổi thành các hành động có thể triển khai, an toàn và bền vững.

Giai đoạn 1 — Phân rã & Hệ thống hóa (Deconstruct)
- Mục tiêu: tách input thành các thành phần cơ bản để loại bỏ nhiễu và từng bước chuẩn hóa dữ liệu.
- Yêu cầu đầu vào tối thiểu (Input Metadata): who, when, context, summary (1 câu), constraints.
- Output: danh sách facts, assumptions, constraints, stakeholders.

Giai đoạn 2 — Xác định Trọng tâm (Focal)
- Mục tiêu: từ các thành phần đã chuẩn hoá, rút ra tối đa 3 trọng tâm theo tiêu chí impact × confidence.
- Với mỗi trọng tâm cần ghi: lý do ngắn (1 câu), dữ liệu/chứng cứ (nếu có), mức độ ưu tiên (cao/trung/bình).

Giai đoạn 3 — Tái kiến tạo & Tối ưu (Re-architect)
- Mục tiêu: cho mỗi trọng tâm, đề xuất một Action Card (giải pháp chính + dự phòng) tuân thủ 4 nguyên tắc: Đơn giản, Hiệu quả, Thực dụng, An toàn.
- Action Card (mẫu):
- Tiêu đề:
- Mô tả ngắn (1-2 câu):
- Giải pháp chính:
- Giải pháp dự phòng:
- 3 bước triển khai (từng bước rõ ràng):
- Ước lượng (effort, risk):
- Success metrics (1–2 chỉ số):

Socratic Gate (Kiểm soát chất lượng trước khi chạy)
- Trước khi triển khai, trả lời 1 câu hỏi Socratic trọng tâm (ví dụ: "Giả định nào nếu sai sẽ khiến giải pháp thất bại?") và hoàn thành checklist an toàn tối thiểu.
- Checklist an toàn (bắt buộc):
1. Data-safety: dữ liệu nhạy cảm đã được xử lý/ẩn chưa?
2. Rollback plan: có kế hoạch hoàn tác nếu có lỗi không?
3. Monitoring: có chỉ số/alert để phát hiện sự cố không?

Nguyên tắc vận hành
- Ghi rõ mọi giả định; nếu thiếu dữ liệu then chốt, dừng và yêu cầu ít nhất 2 thông tin bổ sung.
- Mỗi đề xuất phải có evidence hoặc một bước kiểm chứng nhanh (smoke test) trước khi triển khai rộng.

Ví dụ ví dụ ngắn (áp dụng cho "tối ưu build" nhanh)
- Input Metadata: who=devops, when=2025-10-24, summary="Build chậm", constraints="không thay đổi CI cloud".
- Phân rã: tsc full compile, webpack bundle, network download packages.
- Trọng tâm (Top1): Reduce full TypeScript compile time (impact cao × confidence trung).
- Action Card: enable tsc incremental + cache tsc output; Steps: 1) bật --incremental config; 2) add cache dir to CI; 3) monitor compile time.
- Socratic question: Nếu incremental cache bị corrupt, rollback thế nào? Trả lời: revert config và clear cache; CI vẫn chạy full compile.

How to use
- Khi muốn áp dụng D&R cho một mục tiêu, copy template "Input Metadata" vào comment/issue PR và gọi agent để trả về: (1) Phân rã, (2) Top 3 trọng tâm, (3) Action Cards cho từng trọng tâm, (4) Socratic Gate answers + checklist.

Vị trí lưu & giao tiếp
- File này là bản canonical; nếu muốn tích hợp template vào scaffolding project, đặt `files/templates/DnR-template.md` hoặc thêm vào generator trong `src/features/creators`.

Cam kết
- Mọi thay đổi code/commit/push sau khi D&R phải được bạn xác nhận tối thiểu 3 điểm (data-safety, rollback, monitoring).

---
Created by AI assistant on branch `feature/add-copilot-instructions` — không push lên remote tự động.
52 changes: 52 additions & 0 deletions .github/instructions/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
## Copilot / AI contributor instructions — vscode-python-environments

Quick, actionable notes to get an AI agent productive in this repository.

- Project type: VS Code extension written in TypeScript. Source under `src/` → built with `webpack` into `./dist/extension.js` (see `package.json` `main`).
- Entry points & API: primary extension code in `src/extension.ts` and public API surface in `src/api.ts` and `src/internal.api.ts`.
- Key directories: `src/` (core), `src/common/` (shared utilities like `localize.ts`, `logging.ts`), `managers/` (env managers), `features/` (functional areas), `examples/` (consumers), `files/templates/` (scaffolding including copilot templates).

Build / test / run
- Build for development: `npm run compile` (uses `webpack`).
- Watch (dev): `npm run watch` (webpack watch). There is also `npm run watch-tests` (TypeScript watch for tests) and a compound VS Code task `tasks: build` that runs both watchers.
- Compile TypeScript for tests: `npm run compile-tests` (tsc output -> `out`). `npm run pretest` runs `compile-tests` and `compile`.
- Unit tests: `npm run unittest` (Mocha with `build/.mocha.unittests.json`). Run `npm run pretest` first if you need a fresh build.
- Package: `npm run vsce-package` to create a VSIX (requires `vsce`).

Important repo conventions & patterns
- Localization: All user-facing strings must use the l10n/localize system. See `src/common/localize.ts` and the `l10n` folder. Do not hard-code English strings in UI code.
- Logging: Use the extension logging utilities (`traceLog`, `traceVerbose`) in `src/common/logging.ts`. Avoid `console.log` for internal logs.
- Settings precedence: code assumes VS Code settings precedence (folder → workspace → user). See `.github/instructions/generic.instructions.md` for details.
- Error/UI messages: keep messages actionable and avoid spamming the same message. The repo tracks state to avoid repeated alerts (follow patterns in `src/common/persistentState.ts`).

Where to change behavior
- Contribution points are defined in `package.json` (`activationEvents`, `contributes.commands`, `configuration`). To add a new command, update `package.json` and implement command registration in `src/extension.ts` or `src/common/commands.ts`.
- Entry build output is `./dist/extension.js`. Small runtime changes should still be made in `src/` and then built (or tested using `tsc`/`webpack` watchers).

Examples & idioms for code edits
- Add localized strings: put key in `package.nls.json`/`l10n` and use `localize('key', 'Default text')` in code.
- Add telemetry/logging: use helpers in `src/common/telemetry/*` and `traceLog('message', { meta })` from `logging.ts`.
- Tests: unit tests live under `test/`; many tests use mocha + sinon/typemoq/ts-mockito patterns. See `test/unittests.ts` for test harness patterns.

Integration points & external deps
- Depends on the Python extension (`ms-python.python`) contractually for some features; activation is `onLanguage:python` (see `package.json`).
- Uses `@vscode/test-electron` and `@vscode/test-cli` in dev/test workflows.
- Uses common node deps: `fs-extra`, `dotenv`, `@iarna/toml`, etc.

When making PRs as an AI
- Keep changes small and focused; follow existing file-level patterns (naming, async/await use, error handling helpers in `src/common/errors`).
- Add docstrings to exported functions (see `.github/instructions/generic.instructions.md`).
- Add localization for any user-visible string.
- Run `npm run lint` and `npm run unittest` (or at minimum `npm run compile-tests` + `npm run compile`) before proposing changes.

References (where to look)
- `src/` for implementation details and patterns
- `test/` for unit test examples
- `files/templates/copilot-instructions-text/` contains example copilot templates you can reuse
- `package.json` for scripts and contribution points
- `.github/instructions/generic.instructions.md` for project-specific coding rules (localization, logging, docstrings)

If something is unclear, ask: give the file you intend to edit and a 1–2 line summary of the change. Prefer small incremental PRs.

---
Generated/merged automatically by the AI agent. Ask for edits or to expand examples for a specific subfolder.
32 changes: 32 additions & 0 deletions .github/instructions/generic.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
applyTo: '**'
---

Provide project context and coding guidelines that AI should follow when generating code, answering questions, or reviewing changes.# Coding Instructions for vscode-python-environments

## Localization

- Localize all user-facing messages using VS Code’s `l10n` API.
- Internal log messages do not require localization.

## Logging

- Use the extension’s logging utilities (`traceLog`, `traceVerbose`) for internal logs.
- Do not use `console.log` or `console.warn` for logging.

## Settings Precedence

- Always consider VS Code settings precedence:
1. Workspace folder
2. Workspace
3. User/global
- Remove or update settings from the highest precedence scope first.

## Error Handling & User Notifications

- Avoid showing the same error message multiple times in a session; track state with a module-level variable.
- Use clear, actionable error messages and offer relevant buttons (e.g., "Open settings", "Close").

## Documentation

- Add clear docstrings to public functions, describing their purpose, parameters, and behavior.
84 changes: 84 additions & 0 deletions .github/instructions/issue-format.instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
applyTo: '**/github-issues/**'
---

# Guidelines for Creating Effective GitHub Issues

## Issue Format

When creating GitHub issues, use the following structure to ensure clarity and ease of verification:

### For Bug Reports

1. **Title**: Concise description of the issue (5-10 words)

2. **Problem Statement**:

- 1-2 sentences describing the issue
- Focus on user impact
- Use clear, non-technical language when possible

3. **Steps to Verify Fix**:
- Numbered list (5-7 steps maximum)
- Start each step with an action verb
- Include expected observations
- Cover both success paths and cancellation/back button scenarios

### For Feature Requests

1. **Title**: Clear description of the requested feature

2. **Need Statement**:

- 1-2 sentences describing the user need
- Explain why this feature would be valuable

3. **Acceptance Criteria**:
- Bulleted list of verifiable behaviors
- Include how a user would confirm the feature works as expected

## Examples

### Bug Report Example

```
# Terminal opens prematurely with PET Resolve Environment command

**Problem:** When using "Resolve Environment..." from the Python Environment Tool menu,
the terminal opens before entering a path, creating a confusing workflow.

**Steps to verify fix:**
1. Run "Python Environments: Run Python Environment Tool in Terminal" from Command Palette
2. Select "Resolve Environment..."
3. Verify no terminal opens yet
4. Enter a Python path
5. Verify terminal only appears after path entry
6. Try canceling at the input step - confirm no terminal appears
```

### Feature Request Example

```
# Add back button support to multi-step UI flows

**Problem:** The UI flows for environment creation and Python project setup lack back button
functionality, forcing users to cancel and restart when they need to change a previous selection.

**Steps to verify implementation:**
1. Test back button in PET workflow: Run "Python Environments: Run Python Environment Tool in Terminal",
select "Resolve Environment...", press back button, confirm it returns to menu
2. Test back button in VENV creation: Run "Create environment", select VENV, press back button at various steps
3. Test back button in CONDA creation: Create CONDA environment, use back buttons to navigate between steps
4. Test back button in Python project flow: Add Python project, verify back functionality in project type selection
```

## Best Practices

1. **Be concise**: Keep descriptions short but informative
2. **Use active voice**: "Terminal opens prematurely" rather than "The terminal is opened prematurely"
3. **Include context**: Mention relevant commands, UI elements, and workflows
4. **Focus on verification**: Make steps actionable and observable
5. **Cover edge cases**: Include cancellation paths and error scenarios
6. **Use formatting**: Bold headings and numbered lists improve readability

Remember that good issues help both developers fixing problems and testers verifying solutions.
Loading
Loading