mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-09-29 03:10:19 +00:00
jetbrains.*: move to by-name
This commit is contained in:
committed by
Marco Köpcke
parent
455a10da4e
commit
ce68722dfd
@@ -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.
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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";
|
||||
@@ -34,7 +34,7 @@ in
|
||||
jetbrains.mkJetBrainsProduct {
|
||||
inherit jetbrains-libdbm fsnotifier;
|
||||
|
||||
pname = "idea";
|
||||
pname = "intellij-idea";
|
||||
|
||||
wmClass = "jetbrains-idea";
|
||||
product = "IntelliJ IDEA";
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user