diff --git a/README.md b/README.md index 1732385f..635ab5a8 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ and Swift 5.6 to 5.8. The unversioned `swift` alias also resolves to 5.8. The old Python and Node.js Prybar IDs now use the standard Python 3.10 and Node.js 20 file runners, not Prybar. Projects using retired IDs get the newer runtime and tools with this bundle and may need code or dependency changes. +The old `svelte-kit-node-20` ID resolves to `svelte-kit-node-24`, preserving +the Node.js 24 major that the SvelteKit module already used. ## Building diff --git a/flake.nix b/flake.nix index cdb8c13e..e17ef623 100644 --- a/flake.nix +++ b/flake.nix @@ -122,7 +122,15 @@ ]; }; - pkgs = mkPkgs patched-unstable "x86_64-linux"; + pkgs = (mkPkgs patched-unstable "x86_64-linux").extend (final: _: { + nodejs-slim = nodejs-24-slim; + nodejs = nodejs-24 // { + # The base nixpkgs nodePackages alias requires the older pkgs passthru. + pkgs = final.callPackage "${nixpkgs}/pkgs/development/node-packages" { + nodejs = final.nodejs; + }; + }; + }); pkgs-aarch64-darwin = mkPkgs patched-unstable "aarch64-darwin"; in { diff --git a/pkgs/angular-language-server/default.nix b/pkgs/angular-language-server/default.nix index cd0f7e88..a69ad6e3 100644 --- a/pkgs/angular-language-server/default.nix +++ b/pkgs/angular-language-server/default.nix @@ -1,9 +1,11 @@ # TODO: upstream this file into nixpkgs { buildNpmPackage , fetchurl +, nodejs }: buildNpmPackage rec { + inherit nodejs; name = "@angular/language-server"; version = "17.0.3"; diff --git a/pkgs/modules/angular/default.nix b/pkgs/modules/angular/default.nix index 7fb87491..6816d25e 100644 --- a/pkgs/modules/angular/default.nix +++ b/pkgs/modules/angular/default.nix @@ -4,9 +4,11 @@ let nodeVersion = lib.versions.major nodejs.version; - nodepkgs = pkgs.nodePackages.override { inherit nodejs; }; + nodepkgs = import ../nodejs/node-packages.nix { inherit pkgs nodejs; }; - angular-language-server = pkgs.callPackage ../../angular-language-server { }; + angular-language-server = pkgs.callPackage ../../angular-language-server { + inherit nodejs; + }; language = "angular"; in diff --git a/pkgs/modules/default.nix b/pkgs/modules/default.nix index 78dd6137..e41837c4 100644 --- a/pkgs/modules/default.nix +++ b/pkgs/modules/default.nix @@ -160,7 +160,9 @@ let }) ) (import ./swift) - (import ./svelte-kit) + (import ./svelte-kit { + nodejs = nodejs-24; + }) (import ./vue { nodejs = pkgs.nodejs_20; }) diff --git a/pkgs/modules/nodejs/default.nix b/pkgs/modules/nodejs/default.nix index 8b638247..1bcd4c2d 100644 --- a/pkgs/modules/nodejs/default.nix +++ b/pkgs/modules/nodejs/default.nix @@ -8,8 +8,8 @@ let bun = pkgs.bun; - nodepkgs = pkgs.nodePackages.override { - inherit nodejs; + nodepkgs = import ./node-packages.nix { + inherit pkgs nodejs; }; npx-wrapper = pkgs.writeShellApplication { diff --git a/pkgs/modules/nodejs/node-packages.nix b/pkgs/modules/nodejs/node-packages.nix new file mode 100644 index 00000000..d2229184 --- /dev/null +++ b/pkgs/modules/nodejs/node-packages.nix @@ -0,0 +1,15 @@ +{ pkgs, nodejs }: +let + typescript = pkgs.typescript.override { + buildNpmPackage = pkgs.buildNpmPackage.override { inherit nodejs; }; + }; +in +(pkgs.nodePackages.override { inherit nodejs; }) // { + pnpm = pkgs.pnpm.override { inherit nodejs; }; + yarn = pkgs.yarn.override { inherit nodejs; }; + prettier = pkgs.prettier.override { inherit nodejs; }; + inherit typescript; + typescript-language-server = pkgs.typescript-language-server.override { + inherit nodejs typescript; + }; +} diff --git a/pkgs/modules/python-base/default.nix b/pkgs/modules/python-base/default.nix index a496824a..a5d394d6 100644 --- a/pkgs/modules/python-base/default.nix +++ b/pkgs/modules/python-base/default.nix @@ -34,7 +34,7 @@ in replit.packages = [ binary-wrapped-python (pypkgs.callPackage ../../pip { }) - pkgs.poetry + (pkgs.poetry.override { python3 = python; }) uv ]; diff --git a/pkgs/modules/svelte-kit/default.nix b/pkgs/modules/svelte-kit/default.nix index f16b364a..d209d759 100644 --- a/pkgs/modules/svelte-kit/default.nix +++ b/pkgs/modules/svelte-kit/default.nix @@ -1,15 +1,20 @@ -{ pkgs, ... }: +{ nodejs }: +{ pkgs, lib, ... }: +let + node-version = lib.versions.major nodejs.version; + svelte-language-server = pkgs.svelte-language-server.override { inherit nodejs; }; +in { - id = "svelte-kit-node-20"; + id = "svelte-kit-node-${node-version}"; name = "SvelteKit Tools with Node.js"; - displayVersion = "20"; + displayVersion = node-version; description = '' Svelte Kit development tools. Includes Node.js, Svelte language server. ''; replit = { - packages = with pkgs; [ + packages = [ nodejs ]; @@ -23,14 +28,14 @@ ".ts" ]; - start = "${pkgs.nodejs}/bin/npm run dev"; + start = "${nodejs}/bin/npm run dev"; }; dev.languageServers.svelte-language-server = { name = "Svelte Language Server"; language = "svelte"; extensions = [ ".svelte" ".js" ".ts" ]; - start = "${pkgs.nodePackages.svelte-language-server}/bin/svelteserver --stdio"; + start = "${svelte-language-server}/bin/svelteserver --stdio"; }; }; } diff --git a/pkgs/modules/vue/default.nix b/pkgs/modules/vue/default.nix index 16ca1a61..d528e59a 100644 --- a/pkgs/modules/vue/default.nix +++ b/pkgs/modules/vue/default.nix @@ -2,7 +2,7 @@ { pkgs, lib, ... }: let - nodepkgs = nodejs.pkgs; + nodepkgs = import ../nodejs/node-packages.nix { inherit pkgs nodejs; }; node-version = lib.versions.major nodejs.version; vue-language-server = pkgs.callPackage ../../vue-language-server { diff --git a/pkgs/upgrade-map/default.nix b/pkgs/upgrade-map/default.nix index b7a38248..9c2c8445 100644 --- a/pkgs/upgrade-map/default.nix +++ b/pkgs/upgrade-map/default.nix @@ -50,6 +50,7 @@ let "rust-1.70" = "rust-1.72"; "rust-1.72" = "rust-stable"; "ruby-3.1" = "ruby-3.2"; + "svelte-kit-node-20" = "svelte-kit-node-24"; "swift" = "swift-5.8"; "swift-5.6" = "swift-5.8"; "vue-node-18" = "vue-node-20";