diff --git a/doc/release-notes/rl-2611.section.md b/doc/release-notes/rl-2611.section.md index c0c0229254d5..ea817d1b158f 100644 --- a/doc/release-notes/rl-2611.section.md +++ b/doc/release-notes/rl-2611.section.md @@ -136,6 +136,13 @@ Additionally, the kernel module tree used inside the VM has been split out of the `kernel` argument into a new `kernelModules` argument (defaulting to `kernel`). Callers that overrode `kernel` with a module tree (e.g. from `pkgs.aggregateModules`) to make extra modules available must now pass it via `kernelModules` instead, keeping `kernel` pointing at a bootable kernel derivation. +- The JetBrains IDEs have all been moved to the top-level: + - `jetbrains.idea` and `jetbrains.idea-oss` have been renamed to `intellij-idea` and `intellij-idea-oss` respectively. + - `jetbrains.mps` has been renamed to `jetbrains-mps`. + - `jetbrains.gateway` has been renamed to `jetbrains-gateway`. + - All other IDEs have directly moved to the top-level with no prefix (e.g. `jetbrains.pycharm` -> `pycharm`). + - `jetbrains.plugins` remains unchanged for now. + - The ARMv5 Linux kernel build now uses a standard configuration and generates a standard compressed image instead of the deprecated legacy U‐Boot image format. `lib.systems.{examples,platforms}.{sheevaplug,pogoplug4}` have been unified into `lib.systems.examples.armv5tel-multiplatform`. Note that there is no official support for ARMv5 and it is not possible to build even a simple NixOS configuration out of the box. diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index f9fd6cdb2a5b..5204da5ade3b 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -1,9 +1,25 @@ { # keep-sorted start callPackage, + clion, config, + datagrip, + dataspell, + goland, + intellij-idea, + intellij-idea-oss, + jetbrains, + jetbrains-gateway, + jetbrains-mps, lib, + phpstorm, + pycharm, + pycharm-oss, + rider, + ruby-mine, + rust-rover, stdenv, + webstorm, # keep-sorted end vmopts ? null, @@ -19,48 +35,40 @@ cythonDebugSpeedupsHook = callPackage ./hooks/cython-debug-speedups.nix { }; sharedLibsHook = callPackage ./hooks/shared-libs.nix { }; - # Sorted alphabetically. Deprecated products and aliases are at the very end. - clion = callPackage ./ides/clion.nix { }; - datagrip = callPackage ./ides/datagrip.nix { }; - dataspell = callPackage ./ides/dataspell.nix { }; - gateway = callPackage ./ides/gateway.nix { }; - goland = callPackage ./ides/goland.nix { }; - idea = callPackage ./ides/idea.nix { }; - idea-oss = callPackage ./ides/idea-oss.nix { }; - mps = callPackage ./ides/mps.nix { }; - phpstorm = callPackage ./ides/phpstorm.nix { }; - pycharm = callPackage ./ides/pycharm.nix { }; - pycharm-oss = callPackage ./ides/pycharm-oss.nix { }; - rider = callPackage ./ides/rider.nix { }; - ruby-mine = callPackage ./ides/ruby-mine.nix { }; - rust-rover = callPackage ./ides/rust-rover.nix { }; - webstorm = callPackage ./ides/webstorm.nix { }; - # Plugins plugins = callPackage ./plugins { }; } // lib.optionalAttrs config.allowAliases { + # These now all live in by-name. + # This is managed by the maintainers/scripts/remove-old-aliases.py script, please run it to update these, + # but make sure the warning/throw text says "'jetbrains.xyz' has been..." (add the jetbrains prefix). + # Also update the names in the old aliases at the bottom then! + clion = clion; # Added 2026-08-15 + datagrip = datagrip; # Added 2026-08-15 + dataspell = dataspell; # Added 2026-08-15 + gateway = jetbrains-gateway; # Added 2026-08-15 + goland = goland; # Added 2026-08-15 + idea = intellij-idea; # Added 2026-08-15 + idea-oss = intellij-idea-oss; # Added 2026-08-15 + mps = jetbrains-mps; # Added 2026-08-15 + phpstorm = phpstorm; # Added 2026-08-15 + pycharm = pycharm; # Added 2026-08-15 + pycharm-oss = pycharm-oss; # Added 2026-08-15 + rider = rider; # Added 2026-08-15 + ruby-mine = ruby-mine; # Added 2026-08-15 + rust-rover = rust-rover; # Added 2026-08-15 + webstorm = webstorm; # Added 2026-08-15 # Deprecated products and aliases. - aqua = throw "jetbrains.aqua: Aqua has been removed as it has been discontinued by JetBrains"; - idea-community = throw "jetbrains.idea-community: IntelliJ IDEA Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.idea-oss' or 'jetbrains.idea'. See: https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/"; - idea-community-bin = throw "jetbrains.idea-community-bin: IntelliJ IDEA Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.idea-oss' or 'jetbrains.idea'. See: https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/"; - idea-community-src = throw "jetbrains.idea-community-src: IntelliJ IDEA Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.idea-oss' or 'jetbrains.idea'. See: https://blog.jetbrains.com/idea/2025/07/intellij-idea-unified-distribution-plan/"; - idea-ultimate = throw "'jetbrains.idea-ultimate' has been renamed to/replaced by 'jetbrains.idea'"; - pycharm-community = throw "jetbrains.pycharm-community: PyCharm Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.pycharm-oss' or 'jetbrains.pycharm'. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025"; - pycharm-community-bin = throw "jetbrains.pycharm-community-bin: PyCharm Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.pycharm-oss' or 'jetbrains.pycharm'. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025"; - pycharm-community-src = throw "jetbrains.pycharm-community-src: PyCharm Community has been removed as it has been discontinued by JetBrains. Either switch to 'jetbrains.pycharm-oss' or 'jetbrains.pycharm'. See: https://blog.jetbrains.com/pycharm/2025/04/pycharm-2025"; - pycharm-professional = throw "'jetbrains.pycharm-professional' has been renamed to/replaced by 'jetbrains.pycharm'"; - writerside = throw "jetbrains.writerside: Writerside has been removed as it has been discontinued by JetBrains"; } diff --git a/pkgs/applications/editors/jetbrains/plugins/tests.nix b/pkgs/applications/editors/jetbrains/plugins/tests.nix index 3e015a4b1c2f..16a3468b8873 100644 --- a/pkgs/applications/editors/jetbrains/plugins/tests.nix +++ b/pkgs/applications/editors/jetbrains/plugins/tests.nix @@ -1,11 +1,26 @@ { # keep-sorted start + clion, + datagrip, + dataspell, fetchurl, fetchzip, + goland, + intellij-idea, + intellij-idea-oss, jetbrains, + jetbrains-gateway, + jetbrains-mps, lib, + phpstorm, + pycharm, + pycharm-oss, + rider, + ruby-mine, runCommand, + rust-rover, symlinkJoin, + webstorm, # keep-sorted end # If not set, all IDEs are tested. @@ -15,17 +30,16 @@ let ides = if ide == null then - with jetbrains; [ # keep-sorted start clion datagrip dataspell - gateway goland - idea - idea-oss - mps + intellij-idea + intellij-idea-oss + jetbrains-gateway + jetbrains-mps phpstorm pycharm pycharm-oss diff --git a/pkgs/applications/editors/jetbrains/readme.md b/pkgs/applications/editors/jetbrains/readme.md index eaa95a8c90ed..87a07e3c7df3 100644 --- a/pkgs/applications/editors/jetbrains/readme.md +++ b/pkgs/applications/editors/jetbrains/readme.md @@ -1,13 +1,35 @@ This directory contains the build expressions needed to build any of the JetBrains IDEs. The jdk is in `pkgs/development/compilers/jetbrains-jdk`. +## IDE packages + +The IDEs live in by-name/: + +| IDE Name | Package Location | +|--------------------------------|-----------------------------------------------| +| Clion | pkgs/by-name/cl/clion/package.nix | +| DataGrip | pkgs/by-name/da/datagrip/package.nix | +| DataSpell | pkgs/by-name/da/dataspell/package.nix | +| Gateway | pkgs/by-name/je/jetbrains-gateway/package.nix | +| Goland | pkgs/by-name/go/goland/package.nix | +| IntelliJ IDEA | pkgs/by-name/in/intellij-idea/package.nix | +| IntelliJ IDEA (Open Source) | pkgs/by-name/in/intellij-idea-oss/package.nix | +| MPS | pkgs/by-name/je/jetbrains-mps/package.nix | +| PhpStorm | pkgs/by-name/ph/phpstorm/package.nix | +| PyCharm | pkgs/by-name/py/pycharm/package.nix | +| PyCharm (Open Source) | pkgs/by-name/py/pycharm-oss/package.nix | +| Rider | pkgs/by-name/ri/rider/package.nix | +| RubyMine | pkgs/by-name/ru/ruby-mine/package.nix | +| RustRover | pkgs/by-name/ru/rust-rover/package.nix | +| WebStorm | pkgs/by-name/we/webstorm/package.nix | + ## Tests: - To test the build process of every IDE (as well as the process for adding plugins), build `jetbrains.plugins.tests.empty`. - To test that plugins are correctly stored in the plugins directory, build `jetbrains.plugins.tests.stored-correctly`. ## How to use plugins: - Pass your IDE package and a list of plugin packages to `jetbrains.plugins.addPlugins`. - E.g. `pkgs.jetbrains.plugins.addPlugins pkgs.jetbrains.idea [ ideavim ]` + E.g. `pkgs.jetbrains.plugins.addPlugins pkgs.intellij-idea [ ideavim ]` - The list has to contain drvs giving the directory contents of the plugin or a single `.jar` (executable). Nixpkgs does not package JetBrains plugins, however you can use third-party sources, such as @@ -51,9 +73,9 @@ To keep things simple, the update script will search for the following markers a Any comments or other manual changes between these markers will be removed when the script runs. ## How to add an IDE: - - Add a new derivation in `ides/` + - Add a new derivation in `/pkgs/by-name/...` - Add an entry to the URL templates in `updater/updateInfo.json` - - Add it to `default.nix` + - Add it to the table at the top ("IDE packages") ### TODO: - get rid of remaining `overrideAttrs` in IDE drvs: diff --git a/pkgs/applications/editors/jetbrains/updater/updateInfo.json b/pkgs/applications/editors/jetbrains/updater/updateInfo.json index 41f9f5b8ddd1..67c1d746eebc 100644 --- a/pkgs/applications/editors/jetbrains/updater/updateInfo.json +++ b/pkgs/applications/editors/jetbrains/updater/updateInfo.json @@ -23,14 +23,6 @@ "aarch64-darwin": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg" } }, - "gateway": { - "channel": "GW-RELEASE-licensing-RELEASE", - "urls": { - "x86_64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz", - "aarch64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz", - "aarch64-darwin": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg" - } - }, "goland": { "channel": "GO-RELEASE-licensing-RELEASE", "urls": { @@ -39,7 +31,7 @@ "aarch64-darwin": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg" } }, - "idea": { + "intellij-idea": { "channel": "IU-RELEASE-licensing-RELEASE", "urls": { "x86_64-linux": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz", @@ -47,11 +39,19 @@ "aarch64-darwin": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg" } }, - "idea-oss": { + "intellij-dea-oss": { "channel": "IU-RELEASE-licensing-RELEASE", "urls": {} }, - "mps": { + "jetbrains-gateway": { + "channel": "GW-RELEASE-licensing-RELEASE", + "urls": { + "x86_64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz", + "aarch64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz", + "aarch64-darwin": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg" + } + }, + "jetbrains-mps": { "channel": "MPS-RELEASE-licensing-RELEASE", "urls": { "x86_64-linux": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz", diff --git a/pkgs/applications/editors/jetbrains/ides/clion.nix b/pkgs/by-name/cl/clion/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/clion.nix rename to pkgs/by-name/cl/clion/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/datagrip.nix b/pkgs/by-name/da/datagrip/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/datagrip.nix rename to pkgs/by-name/da/datagrip/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/dataspell.nix b/pkgs/by-name/da/dataspell/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/dataspell.nix rename to pkgs/by-name/da/dataspell/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/goland.nix b/pkgs/by-name/go/goland/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/goland.nix rename to pkgs/by-name/go/goland/package.nix diff --git a/pkgs/applications/editors/jetbrains/source/idea_maven_artefacts.json b/pkgs/by-name/in/intellij-idea-oss/maven_artefacts.json similarity index 100% rename from pkgs/applications/editors/jetbrains/source/idea_maven_artefacts.json rename to pkgs/by-name/in/intellij-idea-oss/maven_artefacts.json diff --git a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix b/pkgs/by-name/in/intellij-idea-oss/package.nix similarity index 97% rename from pkgs/applications/editors/jetbrains/ides/idea-oss.nix rename to pkgs/by-name/in/intellij-idea-oss/package.nix index 70f5da2a517e..8f038f3dd699 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea-oss.nix +++ b/pkgs/by-name/in/intellij-idea-oss/package.nix @@ -18,7 +18,7 @@ let androidHash = "sha256-uvoDTv/7RlyxRp1d9v2tN9IJkv9d1QEkZpp23hae84k="; jpsHash = "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk="; restarterHash = "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag="; - mvnDeps = ../source/idea_maven_artefacts.json; + mvnDeps = ./maven_artefacts.json; repositories = [ "repo1.maven.org/maven2" "packages.jetbrains.team/maven/p/ij/intellij-dependencies" @@ -50,7 +50,7 @@ jetbrains.mkJetBrainsProduct { # the jdk is bundled on Darwin. jdk = if lib.meta.availableOn stdenv.hostPlatform jetbrains.jdk then jetbrains.jdk else null; - pname = "idea-oss"; + pname = "intellij-idea-oss"; wmClass = "jetbrains-idea-ce"; product = "IntelliJ IDEA Open Source"; diff --git a/pkgs/applications/editors/jetbrains/ides/idea.nix b/pkgs/by-name/in/intellij-idea/package.nix similarity index 98% rename from pkgs/applications/editors/jetbrains/ides/idea.nix rename to pkgs/by-name/in/intellij-idea/package.nix index de0ecd11c74c..21ddf6d8b2ab 100644 --- a/pkgs/applications/editors/jetbrains/ides/idea.nix +++ b/pkgs/by-name/in/intellij-idea/package.nix @@ -34,7 +34,7 @@ in jetbrains.mkJetBrainsProduct { inherit jetbrains-libdbm fsnotifier; - pname = "idea"; + pname = "intellij-idea"; wmClass = "jetbrains-idea"; product = "IntelliJ IDEA"; diff --git a/pkgs/applications/editors/jetbrains/ides/gateway.nix b/pkgs/by-name/je/jetbrains-gateway/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/gateway.nix rename to pkgs/by-name/je/jetbrains-gateway/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/mps.nix b/pkgs/by-name/je/jetbrains-mps/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/mps.nix rename to pkgs/by-name/je/jetbrains-mps/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/phpstorm.nix b/pkgs/by-name/ph/phpstorm/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/phpstorm.nix rename to pkgs/by-name/ph/phpstorm/package.nix diff --git a/pkgs/applications/editors/jetbrains/source/pycharm_maven_artefacts.json b/pkgs/by-name/py/pycharm-oss/maven_artefacts.json similarity index 100% rename from pkgs/applications/editors/jetbrains/source/pycharm_maven_artefacts.json rename to pkgs/by-name/py/pycharm-oss/maven_artefacts.json diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix b/pkgs/by-name/py/pycharm-oss/package.nix similarity index 98% rename from pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix rename to pkgs/by-name/py/pycharm-oss/package.nix index bb7cc1b93f0b..798f9a24069f 100644 --- a/pkgs/applications/editors/jetbrains/ides/pycharm-oss.nix +++ b/pkgs/by-name/py/pycharm-oss/package.nix @@ -17,7 +17,7 @@ let androidHash = "sha256-FA/6ry1M7+RISJL+2SR9QkDvAGJAkXhFMh9YoOEU5nk="; jpsHash = "sha256-iHpt926BDLNUwHRXvkqVgwlWiLo1qSZEaGeJcS0Fjmk="; restarterHash = "sha256-acCmC58URd6p9uKZrm0qWgdZkqu9yqCs23v8qgxV2Ag="; - mvnDeps = ../source/pycharm_maven_artefacts.json; + mvnDeps = ./maven_artefacts.json; repositories = [ "repo1.maven.org/maven2" "packages.jetbrains.team/maven/p/ij/intellij-dependencies" diff --git a/pkgs/applications/editors/jetbrains/ides/pycharm.nix b/pkgs/by-name/py/pycharm/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/pycharm.nix rename to pkgs/by-name/py/pycharm/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/rider.nix b/pkgs/by-name/ri/rider/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/rider.nix rename to pkgs/by-name/ri/rider/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/ruby-mine.nix b/pkgs/by-name/ru/ruby-mine/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/ruby-mine.nix rename to pkgs/by-name/ru/ruby-mine/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/rust-rover.nix b/pkgs/by-name/ru/rust-rover/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/rust-rover.nix rename to pkgs/by-name/ru/rust-rover/package.nix diff --git a/pkgs/applications/editors/jetbrains/ides/webstorm.nix b/pkgs/by-name/we/webstorm/package.nix similarity index 100% rename from pkgs/applications/editors/jetbrains/ides/webstorm.nix rename to pkgs/by-name/we/webstorm/package.nix