···11+{
22+ "clion": {
33+ "product": "CLion",
44+ "wmClass": "jetbrains-clion",
55+ "meta": {
66+ "isOpenSource": false,
77+ "description": "C/C++ IDE from JetBrains",
88+ "maintainers": [ "edwtjo", "mic92", "tymscar" ],
99+ "longDescription": "Enhancing productivity for every C and C++ developer on Linux, macOS and Windows.",
1010+ "homepage": "https://www.jetbrains.com/clion/"
1111+ }
1212+ },
1313+ "datagrip": {
1414+ "product": "DataGrip",
1515+ "wmClass": "jetbrains-datagrip",
1616+ "meta": {
1717+ "isOpenSource": false,
1818+ "description": "Database IDE from JetBrains",
1919+ "maintainers": [ ],
2020+ "longDescription": "DataGrip is a new IDE from JetBrains built for database admins. It allows you to quickly migrate and refactor relational databases, construct efficient, statically checked SQL queries and much more.",
2121+ "homepage": "https://www.jetbrains.com/datagrip/"
2222+ }
2323+ },
2424+ "dataspell": {
2525+ "product": "DataSpell",
2626+ "wmClass": "jetbrains-dataspell",
2727+ "meta": {
2828+ "isOpenSource": false,
2929+ "description": "Data science IDE from JetBrains",
3030+ "maintainers": [ "leona" ],
3131+ "longDescription": "DataSpell is a new IDE from JetBrains built for Data Scientists. Mainly it integrates Jupyter notebooks in the IntelliJ platform.",
3232+ "homepage": "https://www.jetbrains.com/dataspell/"
3333+ }
3434+ },
3535+ "gateway": {
3636+ "product": "JetBrains Gateway",
3737+ "productShort": "Gateway",
3838+ "wmClass": "jetbrains-gateway",
3939+ "meta": {
4040+ "isOpenSource": false,
4141+ "description": "Remote development for JetBrains products",
4242+ "maintainers": [ ],
4343+ "longDescription": "JetBrains Gateway is a lightweight launcher that connects a remote server with your local machine, downloads necessary components on the backend, and opens your project in JetBrains Client.",
4444+ "homepage": "https://www.jetbrains.com/remote-development/gateway/"
4545+ }
4646+ },
4747+ "goland": {
4848+ "product": "Goland",
4949+ "wmClass": "jetbrains-goland",
5050+ "meta": {
5151+ "isOpenSource": false,
5252+ "description": "Go IDE from JetBrains",
5353+ "maintainers": [ "tymscar" ],
5454+ "longDescription": "Goland is the codename for a new commercial IDE by JetBrains aimed at providing an ergonomic environment for Go development.\n The new IDE extends the IntelliJ platform with the coding assistance and tool integrations specific for the Go language",
5555+ "homepage": "https://www.jetbrains.com/go/"
5656+ }
5757+ },
5858+ "idea-community": {
5959+ "product": "IntelliJ IDEA CE",
6060+ "productShort": "IDEA",
6161+ "wmClass": "jetbrains-idea-ce",
6262+ "meta": {
6363+ "isOpenSource": true,
6464+ "description": "Free Java, Kotlin, Groovy and Scala IDE from jetbrains",
6565+ "maintainers": [ "edwtjo", "gytis-ivaskevicius", "steinybot", "AnatolyPopov", "tymscar" ],
6666+ "longDescription": "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ.",
6767+ "homepage": "https://www.jetbrains.com/idea/"
6868+ }
6969+ },
7070+ "idea-ultimate": {
7171+ "product": "IntelliJ IDEA",
7272+ "productShort": "IDEA",
7373+ "wmClass": "jetbrains-idea",
7474+ "meta": {
7575+ "isOpenSource": false,
7676+ "description": "Paid-for Java, Kotlin, Groovy and Scala IDE from jetbrains",
7777+ "maintainers": [ "edwtjo", "gytis-ivaskevicius", "steinybot", "AnatolyPopov", "tymscar" ],
7878+ "longDescription": "IDE for Java SE, Groovy & Scala development Powerful environment for building Google Android apps Integration with JUnit, TestNG, popular SCMs, Ant & Maven. Also known as IntelliJ.",
7979+ "homepage": "https://www.jetbrains.com/idea/"
8080+ }
8181+ },
8282+ "mps": {
8383+ "product": "MPS",
8484+ "wmClass": "jetbrains-MPS",
8585+ "meta": {
8686+ "isOpenSource": false,
8787+ "description": "IDE for building domain-specific languages from JetBrains",
8888+ "maintainers": [ "rasendubi" ],
8989+ "longDescription": "A metaprogramming system which uses projectional editing which allows users to overcome the limits of language parsers, and build DSL editors, such as ones with tables and diagrams.",
9090+ "homepage": "https://www.jetbrains.com/mps/"
9191+ }
9292+ },
9393+ "phpstorm": {
9494+ "product": "PhpStorm",
9595+ "wmClass": "jetbrains-phpstorm",
9696+ "meta": {
9797+ "isOpenSource": false,
9898+ "description": "PHP IDE from JetBrains",
9999+ "maintainers": [ "dritter", "tymscar" ],
100100+ "longDescription": "PhpStorm provides an editor for PHP, HTML and JavaScript with on-the-fly code analysis, error prevention and automated refactorings for PHP and JavaScript code. ",
101101+ "homepage": "https://www.jetbrains.com/phpstorm/"
102102+ }
103103+ },
104104+ "pycharm-community": {
105105+ "product": "PyCharm CE",
106106+ "productShort": "PyCharm",
107107+ "wmClass": "jetbrains-pycharm-ce",
108108+ "meta": {
109109+ "isOpenSource": true,
110110+ "description": "Free Python IDE from JetBrains",
111111+ "maintainers": [ "genericnerdyusername", "tymscar" ],
112112+ "longDescription": "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!",
113113+ "homepage": "https://www.jetbrains.com/pycharm/"
114114+ }
115115+ },
116116+ "pycharm-professional": {
117117+ "product": "PyCharm",
118118+ "productShort": "PyCharm",
119119+ "wmClass": "jetbrains-pycharm",
120120+ "meta": {
121121+ "isOpenSource": false,
122122+ "description": "Paid-for Python IDE from JetBrains",
123123+ "maintainers": [ "genericnerdyusername", "tymscar" ],
124124+ "longDescription": "Python IDE with complete set of tools for productive development with Python programming language. In addition, the IDE provides high-class capabilities for professional Web development with Django framework and Google App Engine. It has powerful coding assistance, navigation, a lot of refactoring features, tight integration with various Version Control Systems, Unit testing, powerful all-singing all-dancing Debugger and entire customization. PyCharm is developer driven IDE. It was developed with the aim of providing you almost everything you need for your comfortable and productive development!",
125125+ "homepage": "https://www.jetbrains.com/pycharm/"
126126+ }
127127+ },
128128+ "rider": {
129129+ "product": "Rider",
130130+ "wmClass": "jetbrains-rider",
131131+ "meta": {
132132+ "isOpenSource": false,
133133+ "description": ".NET IDE from JetBrains",
134134+ "maintainers": [ "raphaelr" ],
135135+ "longDescription": "JetBrains Rider is a new .NET IDE based on the IntelliJ platform and ReSharper. Rider supports .NET Core, .NET Framework and Mono based projects. This lets you develop a wide array of applications including .NET desktop apps, services and libraries, Unity games, ASP.NET and ASP.NET Core web applications.",
136136+ "homepage": "https://www.jetbrains.com/rider/"
137137+ }
138138+ },
139139+ "ruby-mine": {
140140+ "product": "RubyMine",
141141+ "wmClass": "jetbrains-rubymine",
142142+ "meta": {
143143+ "isOpenSource": false,
144144+ "description": "Ruby IDE from JetBrains",
145145+ "maintainers": [ "edwtjo", "tymscar"],
146146+ "longDescription": "Ruby IDE from JetBrains",
147147+ "homepage": "https://www.jetbrains.com/ruby/"
148148+ }
149149+ },
150150+ "rust-rover": {
151151+ "product": "RustRover",
152152+ "wmClass": "jetbrains-rustrover",
153153+ "meta": {
154154+ "isOpenSource": false,
155155+ "description": "Rust IDE from JetBrains",
156156+ "maintainers": [ "genericnerdyusername"],
157157+ "longDescription": "Rust IDE from JetBrains",
158158+ "homepage": "https://www.jetbrains.com/rust/"
159159+ }
160160+ },
161161+ "webstorm": {
162162+ "product": "WebStorm",
163163+ "wmClass": "jetbrains-webstorm",
164164+ "meta": {
165165+ "isOpenSource": false,
166166+ "description": "Web IDE from JetBrains",
167167+ "maintainers": [ "abaldeau", "tymscar"],
168168+ "longDescription": "WebStorm provides an editor for HTML, JavaScript (incl. Node.js), and CSS with on-the-fly code analysis, error prevention and automated refactorings for JavaScript code.",
169169+ "homepage": "https://www.jetbrains.com/webstorm/"
170170+ }
171171+ }
172172+}
···2121}
2222SNAPSHOT_VALUE = 99999
2323PLUGINS_FILE = Path(__file__).parent.joinpath("plugins.json").resolve()
2424-IDES_FILE = Path(__file__).parent.joinpath("../versions.json").resolve()
2424+IDES_FILE = Path(__file__).parent.joinpath("../bin/versions.json").resolve()
2525# The plugin compatibility system uses a different naming scheme to the ide update system.
2626# These dicts convert between them
2727FRIENDLY_TO_PLUGIN = {
+65
pkgs/applications/editors/jetbrains/readme.md
···11+This directory contains the build expressions needed to build any of the jetbrains IDEs.
22+The jdk is in `pkgs/development/compilers/jetbrains-jdk`.
33+To test the build process of every IDE (as well as the process for adding plugins), build `jetbrains.plugins.tests.default`.
44+55+## How to use plugins:
66+ - Get the ide you want and call `jetbrains.plugins.addPlugins` with a list of plugins you want to add.
77+ - The list of plugins can be a list of ids or names (as in `plugins/plugins.json`)
88+ - Example: `jetbrains.plugins.addPlugins jetbrains.pycharm-professional [ "nixidea" ]`
99+ - The list can also contain a drv giving a `.jar` or `.zip` (this is how you use a plugin not added to nixpkgs)
1010+1111+### How to add a new plugin to nixpkgs
1212+ - Find the page for the plugin on https://plugins.jetbrains.com
1313+ - Find the id (it's the number after https://plugins.jetbrains.com/plugin/)
1414+ - Run `plugins/update_plugins.py` add (plugin id)
1515+ - If binaries need patch or some other special treatment, add an entry to `plugins/specialPlugins.nix`
1616+1717+## How to update stuff:
1818+ - Run ./bin/update_bin.py
1919+ - This will update binary IDEs and plugins, and automatically commit them
2020+ - Source builds need a bit more effort, as they aren't automated at the moment:
2121+ - Find the build of the stable release you want to target (usually different for pycharm and idea, should have three components)
2222+ - I find this at https://jetbrains.com/updates/updates.xml (search for `fullNumber`)
2323+ - Update the `buildVer` field in source/default.nix
2424+ - Empty the `ideaHash`, `androidHash` and `jpsHash` (only `ideaHash` changes on a regular basis) fields and try to build to get the new hashes
2525+ - Run `nix build .#jetbrains.(idea/pycharm)-community-source.src`, then `./source/build_maven.py source/idea_maven_artefacts.json result/`
2626+ - Update `source/brokenPlugins.json` (from https://plugins.jetbrains.com/files/brokenPlugins.json)
2727+ - Do a test build
2828+ - If it succeeds, make a PR/merge
2929+ - If it fails, ping/message GenericNerdyUsername
3030+3131+## How to add an IDE:
3232+ - Make dummy entries in `bin/versions.json` (make sure to set the version to something older than the real one)
3333+ - Run `bin/update_bin.py`
3434+ - Add an entry in `bin/ides.json`
3535+ - Add an entry in `default.nix`
3636+3737+### TODO:
3838+ - move/copy plugin docs to nixpkgs manual
3939+ - replace `libxcrypt-legacy` with `libxcrypt` when supported
4040+ - make `jetbrains-remote-dev.patch` cleaner
4141+ - is extraLdPath needed for IDEA?
4242+ - set meta.sourceProvenance for everything
4343+ - from source builds:
4444+ - remove timestamps in output `.jar` of `jps-bootstrap`
4545+ - automated update scripts
4646+ - fetch `.jar` s from stuff built in nixpkgs when available
4747+ - what stuff built in nixpkgs provides `.jar`s we care about?
4848+ - kotlin
4949+ - make `configurePhase` respect `$NIX_BUILD_CORES`
5050+ - make the subdir of the resulting tar.gz always have a release number (2023.2.2) instead of a build number (232.9921.89)
5151+ - jdk:
5252+ - build on darwin
5353+ - use chromium stuff built by nixpkgs for jcef?
5454+ - make `buildPhase` respect `$NIX_BUILD_CORES`
5555+ - automated update script?
5656+ - on `aarch64-linux`:
5757+ - test plugins
5858+ - from source build
5959+ - see if build (binary or source) works without expat
6060+ - on `x86_64-darwin`:
6161+ - test plugins
6262+ - from source build
6363+ - on `aarch64-darwin`:
6464+ - test plugins
6565+ - from source build
···104104 };
105105 };
106106107107- meta = with lib; {
107107+108108+ # Some of the OpenJDK derivation set their `pos` by hand. We need to
109109+ # overwrite this in order to point to Corretto, not OpenJDK.
110110+ pos = __curPos;
111111+ meta = with lib; oldAttrs.meta // {
108112 homepage = "https://aws.amazon.com/corretto";
109113 license = licenses.gpl2Only;
110114 description = "Amazon's distribution of OpenJDK";
111111- platforms = jdk.meta.platforms;
112112- mainProgram = "java";
113115 maintainers = with maintainers; [ rollf ];
114116 };
115117})
···224224225225 nativeCheckInputs = [ tzdata desktop-file-utils shared-mime-info ];
226226227227- preCheck = lib.optionalString finalAttrs.doCheck or config.doCheckByDefault or false ''
227227+ preCheck = lib.optionalString finalAttrs.finalPackage.doCheck or config.doCheckByDefault or false ''
228228 export LD_LIBRARY_PATH="$NIX_BUILD_TOP/glib-${finalAttrs.version}/glib/.libs''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
229229 export TZDIR="${tzdata}/share/zoneinfo"
230230 export XDG_CACHE_HOME="$TMP"
+2-2
pkgs/development/libraries/hnswlib/default.nix
···32323333 # this is a header-only library, so we don't need to build it
3434 # we need `cmake` only to run tests
3535- nativeBuildInputs = lib.optionals finalAttrs.doCheck [
3535+ nativeBuildInputs = lib.optionals finalAttrs.finalPackage.doCheck [
3636 cmake
3737 python
3838 ];
39394040 # we only want to run buildPhase when we run tests
4141- dontBuild = !finalAttrs.doCheck;
4141+ dontBuild = !finalAttrs.finalPackage.doCheck;
42424343 installPhase = ''
4444 runHook preInstall
···11{ lib
22+, stdenv
23, buildPythonPackage
34, pythonOlder
45, fetchFromGitHub
···57585859 nativeCheckInputs = [
5960 fsspec
6060- jax
6161- jaxlib
6261 numba
6362 setuptools
6463 numexpr
···6665 pyarrow
6766 pytest-xdist
6867 pytestCheckHook
6868+ ] ++ lib.optionals (!stdenv.isDarwin) [
6969+ # no support for darwin
7070+ jax
7171+ jaxlib
6972 ];
70737174 # The following tests have been disabled because they need to be run on a GPU platform.
···776776 qt6ct = qt6Packages.qt6ct; # Added 2023-03-07
777777 qtcurve = libsForQt5.qtcurve; # Added 2020-11-07
778778 qtile-unwrapped = python3.pkgs.qtile; # Added 2023-05-12
779779+ quantum-espresso-mpi = quantum-espresso; # Added 2023-11-23
779780 qutebrowser-qt6 = throw "'qutebrowser-qt6' has been replaced by 'qutebrowser', since the the qt5 version has been removed"; # Added 2023-08-19
780781 quvi = throw "'quvi' has been removed, as it was broken and unmaintained"; # Added 2023-11-25
781782