Conversation
24dd818 to
58a5e11
Compare
|
This cannot be merged by itself. It will turn off the discovery component. |
@karthiknadig I have mentioned this in the description. It won't turn off the component as we already activate using the component adapter. Right here: vscode-python/src/client/activation/activationManager.ts Lines 75 to 76 in db8e1e2 |
|
I have cleared this up in the comment as well. |
|
Ah! yes. I missed that part. Thanks for taking care of this. |
ericsnowcurrently
left a comment
There was a problem hiding this comment.
Does it not work to just move activateLegacy() first?
|
@ericsnowcurrently We can do that too, but we need not block activating components on all of |
|
The right solution is to pass the relevant objects into the component init/activation, block in components where necessary, and eventually eliminate |
|
Yes eventually when we have everything refactored into components, #15380 can be thought of as an intermediately step. But either way, any solution we go with right now is a temporary solution, so I think this is okay. |
|
With your change we are disabling activation of the component. If you move the |
|
@ericsnowcurrently Please read #15379 (comment). The component adapter already activates it. |
That isn't happening in the component adapter. It's code related to the old discovery machinery. I'd argue that the line in activationManager.ts should only be run if not in the experiment. Regardless, that line is only pre-running env discovery. That part of the extension has no knowledge of what the envs component needs to do during activation. It only happens to be doing what the component does during activation. Instead, the component should be strictly in charge of its activation. We shouldn't short-circuit that design for the sake of any short-term objectives, else we'll end up back with the tangle of special cases and interdependence we're trying to eliminate with the component work. |
Which classes does it rely on? (It seems that we've ended up with the component depending on the old DI framework, which is exactly what we were working to avoid in the component.) |
It relies on And you're right, I was looking at it short-term. I can and will change the code to call |
fa345df to
9e1e04f
Compare
ericsnowcurrently
left a comment
There was a problem hiding this comment.
LGTM
Thanks for the changes. Ideally we would not have introduced the dependencies on the legacy code in the first place. However, at this point it's something to correct later. 😞
|
@ericsnowcurrently InterpreterService is not all legacy code tho, it queries legacy code based on if we're in experiment. Please have a look. |
|
Sorry, I should have been more clear. If it isn't in src/client/pythonEnvironments then I consider it legacy code. (Plus, Regardless, thanks for fixing this. |
…he classes (microsoft#15379) * Do not attempt to activate discovery component before registering all the classes * Add clarification comment * Code reviews
* Do not call activate the discovery component before registering all the classes (#15379) * Do not attempt to activate discovery component before registering all the classes * Add clarification comment * Code reviews * Skip windows store and shims paths when using known path locators (#15388) * Skip windows store and shims paths when using known path locators * Clean up and comments * Tests * Handle cases where envs variables might not be set * Typo Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> * Change "Pylance not installed" prompt to allow reverting to Jedi (#15420) * Allow on suggestion refresh by default (#15430) Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Jake Bailey <[email protected]>
* Cherry pick fix for native notebook support into release branch (#15369) * Fix problem with notebook apis not being used. (#15366) * Update changelog * Remove news file * Add extraPaths support to JediLSP (#15365) * Add extraPaths support * Remove duplicate opt option * Eslint cleanup * Fix tests * Ignore directories with the same name as python binaries (#15367) * Ignore directories with the same name as pyhton binaries * Use withFileTypes instead of lstat * Correct pipenv activation provider when in discovery experiment (#15319) * Correct pipenv activation provider when in discovery experiment * Fix ESLint errors * In PythonEnvsReducer.resolveEnv(), always fall back to the wrapped locator. (#15350) fixes #15118 * Fix issue with missing interpreter info for some cases (#15376) * Use child process apis directly. * Use raw API in process service * Handle process cleanup * Address sonar * Refactor process service by pulling the raw process APIs out of the class * Address comments * Add reference to CVE-2020-16977 fixed in Oct 2020. (#15381) * Fix CI failing with the number of constructor arguments error (#15347) * Fix Command 'workbench.action.closeAllEditors' timed out failure on CI (#15322) * Ensure environment variables provider can be created using standard classes (#15377) * Ensure environment variables provider can be created using standard classes * Fix unit tests * Fix ESLint errors for environment variable provider (#15383) * Fix problem with notebook apis not being used. (#15366) * Show Python: Launch TensorBoard command in command palette (#15382) (#15386) * Always register Launch TensorBoard command * Put usage tracking behind experiment * Cherry picks from main to release (#15421) * Do not call activate the discovery component before registering all the classes (#15379) * Do not attempt to activate discovery component before registering all the classes * Add clarification comment * Code reviews * Skip windows store and shims paths when using known path locators (#15388) * Skip windows store and shims paths when using known path locators * Clean up and comments * Tests * Handle cases where envs variables might not be set * Typo Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> * Change "Pylance not installed" prompt to allow reverting to Jedi (#15420) * Allow on suggestion refresh by default (#15430) Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Jake Bailey <[email protected]> Co-authored-by: Rich Chiodo <[email protected]> Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Eric Snow <[email protected]> Co-authored-by: Jim Griesmer <[email protected]> Co-authored-by: Joyce Er <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Jake Bailey <[email protected]>
* Cherry pick fix for native notebook support into release branch (#15369) * Fix problem with notebook apis not being used. (#15366) * Update changelog * Remove news file * Add extraPaths support to JediLSP (#15365) * Add extraPaths support * Remove duplicate opt option * Eslint cleanup * Fix tests * Ignore directories with the same name as python binaries (#15367) * Ignore directories with the same name as pyhton binaries * Use withFileTypes instead of lstat * Correct pipenv activation provider when in discovery experiment (#15319) * Correct pipenv activation provider when in discovery experiment * Fix ESLint errors * In PythonEnvsReducer.resolveEnv(), always fall back to the wrapped locator. (#15350) fixes #15118 * Fix issue with missing interpreter info for some cases (#15376) * Use child process apis directly. * Use raw API in process service * Handle process cleanup * Address sonar * Refactor process service by pulling the raw process APIs out of the class * Address comments * Add reference to CVE-2020-16977 fixed in Oct 2020. (#15381) * Fix CI failing with the number of constructor arguments error (#15347) * Fix Command 'workbench.action.closeAllEditors' timed out failure on CI (#15322) * Ensure environment variables provider can be created using standard classes (#15377) * Ensure environment variables provider can be created using standard classes * Fix unit tests * Fix ESLint errors for environment variable provider (#15383) * Fix problem with notebook apis not being used. (#15366) * Show Python: Launch TensorBoard command in command palette (#15382) (#15386) * Always register Launch TensorBoard command * Put usage tracking behind experiment * Cherry picks from main to release (#15421) * Do not call activate the discovery component before registering all the classes (#15379) * Do not attempt to activate discovery component before registering all the classes * Add clarification comment * Code reviews * Skip windows store and shims paths when using known path locators (#15388) * Skip windows store and shims paths when using known path locators * Clean up and comments * Tests * Handle cases where envs variables might not be set * Typo Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> * Change "Pylance not installed" prompt to allow reverting to Jedi (#15420) * Allow on suggestion refresh by default (#15430) Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Jake Bailey <[email protected]> * Release final (#15433) * Version update * Change log updates * TPN update * Ensure pyenv virtual envs are not skipped when in discovery experiment (#15451) * Ensure pyenv virtual envs are not skipped * Add news * Clean up * Address comments * Register Jedi regardless of what language server is configured (#15452) * Register Jedi regardless of what language server is configured * News entry * Only call component adapter behind the discovery experiment (#15459) * Update version and change log for point release (#15463) * Version update * Update change log * Update start-up telemetry for Jedi LSP (#15419) (#15571) * Version and change log update for point release (#15572) Co-authored-by: Rich Chiodo <[email protected]> Co-authored-by: Kartik Raj <[email protected]> Co-authored-by: Eric Snow <[email protected]> Co-authored-by: Jim Griesmer <[email protected]> Co-authored-by: Joyce Er <[email protected]> Co-authored-by: Kim-Adeline Miguel <[email protected]> Co-authored-by: Jake Bailey <[email protected]>
We were activating the discovery component before we even register all the classes that the component might need, which led in a few issues as mentioned in #15132 (comment). Removed this activation. Note we already activate using the component adapter for the discovery component so not calling activate() is not a problem.
Opened #15380 to fix this in a general way for all components.
Reverts some parts of #15132