52 Commits
Author SHA1 Message Date
Vitaly Legchilkinandintellij-monorepo-bot e9f911fb1d PY-88517 Make pythonSdkConfigurationMutex per-project to prevent cross-project notifications
The mutex was a global singleton whose isLocked StateFlow was observed by
every project's InterpreterFixExecutor. A lock state change from any
project fanned out updateAllNotifications() to all projects, triggering
stale cache refreshes with visible "Checking existing environments"
progress bars in idle projects.

Replace the global val with a per-project service so each project
observes only its own mutex state.


(cherry picked from commit cc14dce7d07231f6d7d4c3f654cdd8d3a2099ffc)

IJ-MR-197413

GitOrigin-RevId: 65753107b7fe9e654c99f7097f1f41c0499231dc
2026-03-23 17:25:40 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 17c8522684 PY-88280 Extract autoConfigureSdkIfNeeded and simplify SDK auto-configuration
- Add autoConfigureSdkIfNeeded to sdkSuggestionTools that waits for
  project model and uses the global mutex
- Add early return in getModuleInfo when SDK is already configured
- Simplify ModulesSdkConfigurator to use autoConfigureSdkIfNeeded
- Simplify InterpreterSettingsQuickFix to use autoConfigureSdkIfNeeded
- Remove SDK-configured notification from PyProjectSdkConfiguration

(cherry picked from commit f1423427eeb433d379519e3b9d1af00b46fc869d)

GitOrigin-RevId: b81353d3af62f2d1f694d8c0d470d4495a01c989
2026-03-18 17:22:13 +00:00
Vitaly Legchilkinandintellij-monorepo-bot 1dc7eb5123 PY-88280 Convert PyModuleService to Kotlin project-level service with suspended SDK resolution
- Convert PyModuleService (abstract class) to Kotlin interface
- Convert PyModuleServiceImpl to Kotlin with project-level scope
- Change from application-level to project-level service
- Add findPythonSdkWaitingForProjectModel suspend method that awaits
  JPS project model loading before resolving the SDK
- Mark old findPythonSdk as @ApiStatus.Obsolete
- Update all call sites to use getInstance(project)

(cherry picked from commit 4dc39a57dbc6063d37522fac8befe01329c10cde)

GitOrigin-RevId: 529405c76d8e2fa503ccc40e15dd0834dd59f469
2026-03-18 17:22:13 +00:00
Ilya.Kazakevichandintellij-monorepo-bot e1fd07e519 PY-86454: Autoconfigure python SDK even when there are several modules, but only one is python module.
We only autoconfigure SDK when there is one module. But there might be other (non-python) modules. We must ignore them.


(cherry picked from commit 6c45d3678aa16f54ba6967b24a8dd8afdb7fa2f6)

IJ-CR-196680

GitOrigin-RevId: 65dd0fbc6bcb6cc2abe123e820a1ae9dd4f60433
2026-03-18 12:56:26 +00:00
Mikhail Filippovandintellij-monorepo-bot 67e3eba466 [build] IJPL-232588 update Kotlin compiler to 2.3.20-RC2
(cherry picked from commit 02cf3f93e77aa26b098c5c0d52caa4cf1af5078c)

IJ-MR-194445

GitOrigin-RevId: 05535bc07df7b591784f6973de9e8ce1751041f5
2026-03-04 22:14:34 +00:00
David Lysenkoandintellij-monorepo-bot c23c78ac0d potw-changes-to-261
This MR cherry picks changes done for PY-87723 and PY-87578

Merge-request: IJ-MR-193482
Merged-by: David Lysenko <david.lysenko@jetbrains.com>

GitOrigin-RevId: c74229ed48ae8702667dda201613a2d0c3f25369
2026-02-26 19:55:47 +00:00
Alexey Katsmanandintellij-monorepo-bot fc0731b0ef PY-87227 Suggest a tool installation if it is not already installed
Support a mechanism for recommending a tool installation if we're
confident it should be used for SDK configuration. For now, it only
supports uv (with uv.lock check).

It also fixes PY-87744, since we dropped all usages of PyDetectedSdk in
our SDK configurators.

GitOrigin-RevId: f99a1089025079313db9aae09e3cfc0205e7e37f
2026-02-20 22:53:20 +00:00
Leonid Shalupovandintellij-monorepo-bot 188b7ef96f IJI-3282 Optimize imports
GitOrigin-RevId: 3b5c00d8ff20b8d0bb6005bc450921085d2da9b2
2026-01-31 17:03:42 +00:00
Ilya.Kazakevichandintellij-monorepo-bot a0c7b5e7b6 PY-87224: Remove unused registry key
GitOrigin-RevId: d4c4818f11e58afedf3ff3a58e0aa04fd995fded
2026-01-30 05:00:01 +00:00
Alexey Katsmanandintellij-monorepo-bot 71cb91d1b6 PY-87232 Move SDK configurators away from ide customizations module
This was done for two reasons. To support these configurators in Python
plugin, not only PyCharm. And to make it easier to split tools by plugins.

GitOrigin-RevId: 9954c0c70be4e0d87405e88a0547ba4984db3dc1
2026-01-29 13:25:49 +00:00
Mikhail Filippovandintellij-monorepo-bot 745886b823 [build] IJPL-230820 update kotlin compiler to 2.3.10-RC
GitOrigin-RevId: 3a384d99211f56a88ea4a3db96778418728653e0
2026-01-28 16:36:56 +00:00
Alexey Katsmanandintellij-monorepo-bot 0dada0f9c1 PY-86991 Remove Python sdk configurators dialogs
Dialogs are no longer used in sdk configurators, so those were removed.

System pythons are sorted in a way so that free-threaded Python won't be
the first one (as it's unstable and may cause issues when used as a
default for venv creation).

Venv creation is now the default fallback, so that we won't use system
python as an interpreter.

SdkCreator won't return nullable SDK anymore. Also WSL sdk configurator
should be supported by respective tools, no need in a separate
configurator.

GitOrigin-RevId: 4db65e50363ced52a9ab468c56191095354d3fa2
2026-01-27 20:03:34 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 55e7ab0114 PY-85793: Enable project configuration by default
GitOrigin-RevId: a568b0b32b543cee7724d4ced4b9077e9300630d
2026-01-15 06:31:46 +00:00
Ilya Kazakevichandintellij-monorepo-bot 8990009f05 PY-86857: Show module names in the execution console during SDK configuration.
SDK creator (`com/jetbrains/python/sdk/configuration/CreateSdkInfo.kt:19`) creates SDK, and we set `TraceContext` so every single call it does to `ExecutionService` (to run external tool for example) is accomplished with a module name.


Merge-request: IJ-MR-187827
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: 86823980c1d7b0ee7901545617d6f904c55ecb7f
2026-01-14 20:16:10 +00:00
Mikhail Filippovandintellij-monorepo-bot ea41f7932a [build] IJI-2993 enable progressive mode for Kotlin
GitOrigin-RevId: f506021c20fc3b3e5ef692c9092592e3bf247036
2026-01-14 11:00:39 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 957eac5c13 [python] PY-79486: Move Module.pythonSdk to sdk module and reuse it multi-module project.
GitOrigin-RevId: db441216c40aa35cbf494e05e3f6b549cd261cd6
2025-12-26 00:13:51 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 8d86575f7c [python] PY-86335: Parse toml build section for tool id.
Look for toolId in build section to suggest this tool, but also use the same logic from inspection to configure the right tool automatically.

GitOrigin-RevId: faea6e6f7da89ba69e7c01dba7662d429596c46b
2025-12-25 00:14:15 +00:00
Ilya.Kazakevichandintellij-monorepo-bot e922274b64 [python] PY-79486, PY-86454: WIP: Automatic SDK configuration, see ModuleConfigurationMode
Two modes are described in `ModuleConfigurationMode`

GitOrigin-RevId: bf6508571fd2f31ee87dd4b52c293155583c6eea
2025-12-24 21:33:56 +00:00
Mikhail Filippovandintellij-monorepo-bot 03c55f3020 [build] IJPL-220367 update kotlin compiler to 2.3.0
GitOrigin-RevId: 78297c61293c01004c2d5615ad65bdecff61381a
2025-12-22 15:30:41 +00:00
Mikhail Filippovandintellij-monorepo-bot 7744eca84a [build] IJPL-220367 bump Kotlin language and API versions
GitOrigin-RevId: c58c2f2ca3e4fbbe5116bd19119345174b7db32f
2025-12-20 13:35:48 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 6240c724bf IJPL-224042 IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 fix direct usage of libraries (we fixed corresponding test)
GitOrigin-RevId: 63c484ecb4165e5a254e2b91d49c7980b7c29b44
2025-12-20 11:39:46 +00:00
Vladimir Krivosheevandintellij-monorepo-bot f50a280b54 IJPL-224042 IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 intellij.libraries.compose.foundation.desktop.junit must not export the whole world - fix missing deps
GitOrigin-RevId: 57a03c89fa9d2a13f0aacc471903a5e6173e296e
2025-12-19 08:04:15 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 4f459317e1 IJPL-224042 IJ-MR-184958 IJ-MR-184993 IJ-MR-179029 IJ-MR-184126 IJ-MR-181153 IJ-MR-146078 IJ-MR-175479 IJ-MR-186058 intellij.libraries.compose.foundation.desktop.junit must not export the whole world
GitOrigin-RevId: 517993e03d14c4292e30f4d0958bece73a793d17
2025-12-19 08:04:15 +00:00
Mikhail Filippovandintellij-monorepo-bot 7fe480df8b [build] IJPL-220367 update kotlin compiler to 2.3.0-RC3
GitOrigin-RevId: 3fa9accb1be54d43d7666809bc03b848dd801353
2025-12-10 15:02:31 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 2ed2f281a4 [python] PY-79486: (WIP): Fix "search module" field, add "select all" checkbox.
UI arranged with the sketch

GitOrigin-RevId: cf0167b06757767f271ae4d33572ef2a42e16f41
2025-12-02 03:45:33 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 56bf43d2a9 IJPL-220739 IJ-MR-179029 IJ-MR-175479 IJ-MR-184126 convert kotlinx-coroutines-core lib to product module
GitOrigin-RevId: cb29d371d95f2e59ea722906c35dacf87992de97
2025-12-01 21:40:00 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 40bb816185 [python] PY-85791: Introduce ExecOptions.weight to limit concurrent processes.
Even though project configurators are light, we still do not want to run 2000 `hatch` concurrently.

Conda is heavy, no more than 2 of them should ever be launched to freeze user OS.

We introduce a dead-simple API (see `ExecOptions.weight`) and use it to solve aforementioned cases.

GitOrigin-RevId: da20031c74824fc36288ddb57639e07d3a9ea5a3
2025-11-29 23:31:55 +00:00
Mikhail Filippovandintellij-monorepo-bot a7d2ccd9d6 [build] IJPL-220152 Update Kotlin compiler to 2.2.21
GitOrigin-RevId: 967d3ada862e143d7dcfd3bc18ceaded08505ee0
2025-11-27 16:07:55 +00:00
Ilya Kazakevichandintellij-monorepo-bot 7a580fd48b link/PY-85711/skip-non-python-modules-for-non-pycharm-ides
[python]: PY-85709: Support Python facet for non-PyCharm IDEs.

The following code doesn't work for anything but PyCharm.
```kotlin
ModuleRootManager.getInstance(module).sdk
```

We now call `com.jetbrains.python.module.PyModuleService.findPythonSdk` which supports both Python SDK and Facet.

[python]: PY-85711 : Do not touch non-python modules in `removeFakeModuleEntity` and do not set `inherited` for newly created modules.

1. We should never delete any module which isn't python.

2. No need to look for sdk in workspace as we already do that for all modules by reverting their SDK settings. Moreover, `InheritedSdkDependency` was wrong: it set project-level Java JDK as Python SDK

[python]: PY-85711 : Make `PyActiveSdkModuleConfigurable` filter non-python modules.

See `com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable.isSuitableForModule` comment

[python]: PY-85711 : Move `isPythonModule` to `PyModuleService`.

We are going to reuse it all over the code

[python]: PY-85711 : Refactor `PyModuleService`.

Drop unneeded class


Merge-request: IJ-MR-183088
Merged-by: Ilya Kazakevich <ilya.kazakevich@jetbrains.com>

GitOrigin-RevId: 19f65ba65ea7ea8d8ff8698a64e6a3cbe6803cb0
2025-11-24 22:50:38 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 753526cd88 [python] PY-79486: (WIP): Rename wrongly named class
GitOrigin-RevId: 81472246ac871c80655290f687f560d48b12094d
2025-11-11 01:22:11 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 1bed87261f [python] PY-79486: (WIP): Fix UI size and make it resizable.
`WindowManager` handles DPI issues.

GitOrigin-RevId: 0f60b5a761bd7df6551209f4c4b1af89bfd7403e
2025-11-11 01:22:11 +00:00
Nikolay Rykunovandintellij-monorepo-bot bfb0469eea IJPL-209476 Make intellij.platform.rpc V2
GitOrigin-RevId: 0619990a8ac5afe1e5d7b8c9ca4b2c70de9a94f3
2025-11-10 23:13:20 +00:00
Ilya.Kazakevichandintellij-monorepo-bot a02a1f58b3 [python] PY-79486: (WIP): Front-end refactoring
Use `key` not to recompose all modules while filtering

GitOrigin-RevId: 2b8ed903589f5c9daf6ced72732c05af23d8a552
2025-11-07 12:36:15 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 249c8ce892 [python] PY-79486: (WIP): Improve UI towards the new design:
1. Show module paths
2. Show icons
3. Make window 65% wide

GitOrigin-RevId: 31c1e0e8e7f25bb9d387d9fc6165f7170626d3f0
2025-11-06 07:18:04 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 13b58c18a3 [python] PY-79486: (WIP): Front-end improvements:
Remove hardcodes, add filter

GitOrigin-RevId: 09e9b7dad0ac6c9ccfa5554915ee337697b8e1cb
2025-11-05 20:52:34 +00:00
Tatiana Berandintellij-monorepo-bot 6957755efb PY-85347 UI Texts: Fix typos and grammar mistakes (November)
GitOrigin-RevId: 20816980809477a2c7421a3a81ab65f18f35bded
2025-11-04 17:40:15 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 6d0c4471f1 [python] PY-79486: (WIP): Frontend clean-up, add open/close arrow
GitOrigin-RevId: 9154ad49cc17e2a0f1a3a9afebf5872f845d0405
2025-11-04 03:12:37 +00:00
Alexey Katsmanandintellij-monorepo-bot ea82fe5cc2 [python] PY-83881 Provide python info during environment detection
GitOrigin-RevId: 4e424c8fa9c08ce3cd497586f5f13e5a5816f52a
2025-10-31 17:55:16 +00:00
Ilya.Kazakevichandintellij-monorepo-bot ef0216df92 [python] PY-79486: (WIP): show workspace members one level deeper.
Simplify frontend logic, show workspace members as children of their parent

GitOrigin-RevId: 551adc0869323cb1e8318334aa830dfd37ec2337
2025-10-31 08:11:12 +00:00
Ilya.Kazakevichandintellij-monorepo-bot a549cbc1ee [python] PY-79486: (WIP) Frontend refactoring.
Get rid of lots of constants, use intrinsic measurement

GitOrigin-RevId: a7a9fbd2ecf75844ceb541f4002d3533b0b97cf6
2025-10-31 07:06:12 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 7e01117cb8 [python] PY-79486: Limit window width
GitOrigin-RevId: 6d8d9346e5607143ab40cdcb07aa791242abdb7f
2025-10-28 21:24:31 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 6dbbff7253 [python] PY-79486 (WIP): Use real EPs to create SDKs.
The process is described in `ModulesSdkConfigurator` doc.

GitOrigin-RevId: 2a230c0f4cf6676108406c1af53f38dc0873f282
2025-10-24 19:25:13 +00:00
Leonid Shalupovandintellij-monorepo-bot d48dd7365d [build scripts] churn: update Kotlin compiler to 2.2.21-RC2
as specified in https://youtrack.jetbrains.com/articles/KT-A-609/IntelliJ-monorepo-and-Kotlin-Updates IJ team updates to the latest RC versions of Kotlin for additional kotlin releases testing

GitOrigin-RevId: 357a4ba1a05c4beb7a828d8b07f02a08c992edb5
2025-10-22 19:26:55 +00:00
Ilya.Kazakevichandintellij-monorepo-bot c183e6e634 [python] PY-79486: (WIP) split pyproject.toml tools into backend/common.
Each tool (uv, poetry) now has `common` and `backend` part. `common` has icons because we need them both on the front and on the back.

We might need to create `front` module also if we wouldn't be able to use icons in compose.

GitOrigin-RevId: b5662fbdf3d23f1ddaa5926469d1cfd2051a0fba
2025-10-16 17:21:59 +00:00
Nikolay Chashnikovandintellij-monorepo-bot c5a7514894 [python] specify visibility for modules used from other plugins (IJPL-207059)
'intellij.python.sdkConfigurator.common' is marked as 'public' since it includes public API, other two modules are marked as 'internal'.

GitOrigin-RevId: 5c2d00cd0b20f9c46ec15c50e3cb0b13a8bf999c
2025-10-15 11:38:37 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 8afe02bd0c PY-79486: (WIP) Fix backend call to detect modules, show icon for pythons.
It is not possible to use topics to access the backend. Only RPC API must be used.
Moreover, registry settings require restart.

GitOrigin-RevId: 74a266ef6318cc059b2819ce3a2224b51ecf82ac
2025-10-15 02:07:16 +00:00
Alexey Katsmanandintellij-monorepo-bot 59fa0db43c [python] PY-83881 Detect existing environments when creating SDK
Before the changes, there wasn't any mechanism to detect that
environment was already created (for example, .venv exists in the
project). In these situations, during SDK creation we could've created
another environment which was not expected by users.

With these changes, it's now possible to detect in the configurator that
environment already exists, and use it when creating SDK.


Merge-request: IJ-MR-177317
Merged-by: Alexey Katsman <alexey.katsman@jetbrains.com>

GitOrigin-RevId: a612a1069ca5275bedbcfa6af9377059dab7c072
2025-10-14 19:24:05 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 9bd4dea5d7 PY-79486: (WIP) Replace old SDK configuration process with new one if enabled.
When registry key is enabled, we replace all other SDK configurations (done by inspection and open processors) with a new one.

We also have an action to start this process

GitOrigin-RevId: b6e624cc0390c6f668625fffdb6b308a1c903455
2025-10-14 03:43:56 +00:00
Ilya.Kazakevichandintellij-monorepo-bot 2e6e0b6a98 PY-79486: (WIP) Create mock ui for Pythons, auto enable workspaces when user clicks on child
GitOrigin-RevId: 6ca4b4ed6898a1b0ab8b0b44b607a6a5d8ac5980
2025-10-13 04:04:53 +00:00
Vladimir Krivosheevandintellij-monorepo-bot 67a6dac7f8 IJPL-209476 IJ-CR-146078 kotlinx-datetime-jvm, kotlinx-document-store-mvstore, kotlinx-html-jvm, kotlinx-serialization-protobuf, kotlinx-collections-immutable
GitOrigin-RevId: 058331a1e834d7780456f98d003afe56abfc36a0
2025-10-12 11:10:47 +00:00