-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Implemented new interpreter storage supporting multiroot workspaces #10325
Conversation
Codecov Report
@@ Coverage Diff @@
## pythonPath #10325 +/- ##
===========================================
Coverage 60.95% 60.95%
===========================================
Files 585 585
Lines 31817 31817
Branches 4524 4524
===========================================
Hits 19393 19393
Misses 11444 11444
Partials 980 980 Continue to review full report at Codecov.
|
e2ac4af
to
690ac89
Compare
a4bca7e
to
2cda0f3
Compare
56a5522
to
883f899
Compare
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.
I'm only halfway done with my review, but I had to restart my computer 😅
src/client/interpreter/configuration/services/globalUpdaterService.ts
Outdated
Show resolved
Hide resolved
src/client/interpreter/configuration/pythonPathUpdaterServiceFactory.ts
Outdated
Show resolved
Hide resolved
src/client/application/diagnostics/checks/macPythonInterpreter.ts
Outdated
Show resolved
Hide resolved
src/client/application/diagnostics/checks/macPythonInterpreter.ts
Outdated
Show resolved
Hide resolved
src/client/interpreter/configuration/services/workspaceUpdaterService.ts
Outdated
Show resolved
Hide resolved
a93ec74
to
e43d227
Compare
src/client/interpreter/configuration/services/workspaceUpdaterService.ts
Show resolved
Hide resolved
src/client/interpreter/configuration/services/workspaceUpdaterService.ts
Show resolved
Hide resolved
e60d5da
to
2e343cf
Compare
10028ed
to
b5aa4b6
Compare
4bf7390
to
9044207
Compare
…rServiceFactory.ts
src/client/application/diagnostics/checks/macPythonInterpreter.ts
Outdated
Show resolved
Hide resolved
28d31aa
to
7ce11ba
Compare
Kudos, SonarCloud Quality Gate passed! 0 Bugs |
…10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error
…10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error
…10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error
…10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error
…10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error
* Modified `Select interpreter` command & add a reset interpreter command (#10373) * Modified `Select interpreter` command to support setting interpreter at workspace level * Added a command to reset value of Python interpreter * Code reviews * Update src/client/interpreter/configuration/interpreterSelector.ts Co-Authored-By: Karthik Nadig <kanadig@microsoft.com> Co-authored-by: Karthik Nadig <kanadig@microsoft.com> * Implemented new interpreter storage supporting multiroot workspaces (#10325) * Added python.defaultInterpreterPath setting * Created persistent storage infrastructure * Added vscode.workspace.workspaceFile API * Implemented inspect interpreter path * Implement config service updater for pythonPath * Correct build errors * Change extension to use new infrastructure * Store service container in a global variable * Update settings in the new way src/test/common * Correct cyclic dependency between IExperimentsManager and IConfigurationService * Detect change in new interpreter storage and act accordingly * Added reset python interpreters command * Cache the auto selected interpreter * Log python interpreter in the output channel * Fix autoselection and speed up the interpreter change process * Reset experiments * Reset python interpreters for workspace * Remove reset interpreter command from this PR * Added news entry * Update getWorkspaceFolderIdentifier * Code reviews * Dispose handler * More code reviews * Resolve merge conflicts * Fix issues * Some more fixes * More fixes * Do not assume ACTIVATED_SERVICE_CONTAINER is defined * Fix running tests * Fix cacheUtils.ts and test/common.ts * Correct cacheResourceSpecificInterpreterData decorator * Added tests for decorator-like implementation in enviroment provider * Code reviews * Fix interpreter service unit tests * Fix interpreter display unit tests * Fix mac interpreter unit tests * Fix interpreter selector unit tests * Fix configSettings pythonPath unit tests * Fix configSettings unit tests * Rebase with master * Fix installer.test.ts tests * Fix moduleInstaller.test.ts tests * Fix pythonPathUpdater.test.ts tests * Fix pythonProc.simple.multiroot.test.ts tests * Fix data science functional tests * Fix smoke tests * Use user friendly path in the output channel * Use symbols directly * Fix bug with configSettings.ts * Fix venv tests * Run all tests with the new interpreter storage" * Restore YAML pipeline * Fix absolute path resolver * Run all tests with old interpreter storage * Reduce run time of venv tests * Run only mac multiroot * Remove experiment from experiments.json * Added tests for Interpreter path service * saa * Ensure we use `CI_PYTHON_PATH` when running tests with the new interpreter storage * Reset global interpreter path as well * Added tests for mac interpreter diagnostic * Added tests for src\client\interpreter\autoSelection\rules\settings.ts * Added tests for src\client\interpreter\configuration\pythonPathUpdaterServiceFactory.ts * Added tests for src\client\interpreter\autoSelection\rules\workspaceEnv.ts * Added tests for src\client\interpreter\interpreterService.ts * Added tests for src\client\common\configuration\service.ts * Added tests for src\client\startupTelemetry.ts * Correct tests * Module installer tests * Code reviews * More code reviews * Fix lint error * Prompt when an "unsafe" workspace python environment is to be autoselected (#10430) * Implement prompt when an unsafe workspace python environment is to be autoselected * Code reviews * Refactor pythonPath stuff into a private method * Use variable instead of hardcoding 'python' string * Added tests for src\client\interpreter\autoSelection\interpreterSecurity\interpreterSecurityCommands.ts * Don't register command in the constructor * Refactored code * Updated tests * Code reviews * Moved bannerLabelYes/No to Common() namespace * Update content for news entry * Corrected activation manager tests * Fix single workspace CI tests * Fix multiroot tests + Code reviews * Rename Interpreter Security clear command * Fix tests * Added intellisense for pythonpath experiment * Fix multiroot tests * Rename `Reset interpreter` command to `Clear workspace interpreter setting * Fix bug with interpreter security storage * Correct prettier errors * Edit news entries appropriately * Git rebase * Code reviews Co-authored-by: Karthik Nadig <kanadig@microsoft.com>
Sorry for such a big PR, do let me know if I need to break it!
For #10375
package-lock.json
has been regenerated by runningnpm install
(if dependencies have changed).