Artifacts of PyCharm Community published by JetBrains include additional proprietary plugins. It's better to use the same layout when running PyCharm Community from sources using 'dev build' to make dev build more similar to production (we do the same when running IDEA Community using dev build). This is also needed to allow testing these additional plugins in PyCharm Community (see RDCT-1407).
So code from 'PyCharmBuilder.createBuildContextForCommunityProduct' was extracted to a separate 'PyCharmCommunityWithProPluginsProperties', and this class is now used when running using 'dev build'. This also fixes PY-72924, because 'IdeBuilderKt.createProductProperties' passes the path to the ultimate project home to the constructor of ProductProperties class, so before 'PyCharmCommunityProperties' bundled incompatible plugins from plugin-list.txt from PyCharm Professional.
GitOrigin-RevId: f5c66ff7449d1dacdf6e8156d9f274d594e648df
This commit partially reverts changes from 4da3e7da. While the consolidation of reStructuredText support into a single module is retained, it needs to be available as a plugin since some IDEs do not include it by default but can still benefit from its capabilities.
Merge-request: IJ-MR-139650
Merged-by: Andrey Lisin <andrey.lisin@jetbrains.com>
GitOrigin-RevId: bc5cde2970a0760e32ceaee61ceef8427e8f8fe5
(MP-6452) Fix failing project structure and packaging tests
(MP-6452) Make sure that machine learning score is calculated correctly for each plugin
Previously, there was a cache with mutable list of features. There were two issues with it. First, because of mutability, it could store mlScore for a different query sometimes. Second, there were no guarantees on consequent call of ranking and features logging before the next ranking event happens, so the feature cache could be inconsistent in certain scenarios.
(MP-6452) Introduce search index in plugin manager events that corresponds to actual query order
I also change the definition of plugin manager session. The session is restarted only in two cases: when a user clicks on the Plugins section in settings or when the search is restarted after a plugin installation.
(MP-6452) Add additional features: is result ordered by ML, is user internal, experiment group and version
(MP-6452) Fix missing date of latest plugin update, add days since latest updates and textual features
(MP-6452) Apply suggestions from the code review
(MP-6452) Integrate the ranking plugin with the search and the logging group
In feature extractors, during the first run, I calculate the features for a model to predict plugin relevance and on the second run the features to report to the MP collector (with predicted score, for example). I also implement features cache to calculate the most of the features only once
(MP-6452) Implement the baseline plugin manager session id definition and log it to FUS and MP recorders
I attach the start of a session to enableSearch method of PluginManagerConfigurable that gets triggered on "Plugins" setting group selection in the menu
(MP-6452) Add plugin for plugins ranking in the Plugin Manager
ML in SE: add embedding search integration test subsystem tag
Merge-request: IJ-MR-130364
Merged-by: Evgeny Abramov <Evgeny.Abramov@jetbrains.com>
GitOrigin-RevId: 9136d316aec2ede74bec07798dd8db16e7849f54
`.main` suffix is reserved for aggregator modules which are used to run app/tests from sources.
This module is actually used in the production.
The name is chosen because the module contains the starter for non-commercial products.
GitOrigin-RevId: f456bbe2aae33d2f016136fc9ad32c23ab751240
Autolayout doesn't obey includes. With plain copy/paste (which is a recommended approach for now) we do not have to list all modules manually in `pluginLayout`.
It is taken from `content`.
We also refactor out PyCharm training, as it depends on plugin that may not exist
GitOrigin-RevId: c225b3565a4b3ea1121a7cdf0b072a63b9448ca4