From 39bd700221aed592680d2974ae58cbb8a6fa1a08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Fri, 11 Sep 2026 13:16:43 +0200 Subject: [PATCH] tests/pnpm: add test for pnpm 12 (cherry picked from commit feccedc4bf7aa9651b8258dd07e2b87ffad1cec1) --- pkgs/test/pnpm/default.nix | 1 + pkgs/test/pnpm/pnpm_12_v4/default.nix | 60 ++++++++++++++++++++ pkgs/test/pnpm/pnpm_12_v4/src/.gitignore | 2 + pkgs/test/pnpm/pnpm_12_v4/src/index.ts | 1 + pkgs/test/pnpm/pnpm_12_v4/src/package.json | 20 +++++++ pkgs/test/pnpm/pnpm_12_v4/src/pnpm-lock.yaml | 39 +++++++++++++ pkgs/test/pnpm/pnpm_12_v4/src/tsconfig.json | 13 +++++ 7 files changed, 136 insertions(+) create mode 100644 pkgs/test/pnpm/pnpm_12_v4/default.nix create mode 100644 pkgs/test/pnpm/pnpm_12_v4/src/.gitignore create mode 100644 pkgs/test/pnpm/pnpm_12_v4/src/index.ts create mode 100644 pkgs/test/pnpm/pnpm_12_v4/src/package.json create mode 100644 pkgs/test/pnpm/pnpm_12_v4/src/pnpm-lock.yaml create mode 100644 pkgs/test/pnpm/pnpm_12_v4/src/tsconfig.json diff --git a/pkgs/test/pnpm/default.nix b/pkgs/test/pnpm/default.nix index 27938a8a0405..0d552c7c86d2 100644 --- a/pkgs/test/pnpm/default.nix +++ b/pkgs/test/pnpm/default.nix @@ -5,4 +5,5 @@ pnpm-workspaces = lib.recurseIntoAttrs (callPackage ./pnpm-workspaces { }); pnpm_11_v3 = callPackage ./pnpm_11_v3 { }; pnpm_11_v4 = callPackage ./pnpm_11_v4 { }; + pnpm_12_v4 = callPackage ./pnpm_12_v4 { }; } diff --git a/pkgs/test/pnpm/pnpm_12_v4/default.nix b/pkgs/test/pnpm/pnpm_12_v4/default.nix new file mode 100644 index 000000000000..0106a8054cc1 --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/default.nix @@ -0,0 +1,60 @@ +{ + fetchPnpmDeps, + lib, + makeShellWrapper, + nodejs-slim, + pnpmConfigHook, + pnpm_12, + stdenv, + testers, +}: +let + pnpm = pnpm_12; +in +stdenv.mkDerivation (finalAttrs: { + pname = "pnpm-test"; + inherit (pnpm) version; + + src = ./src; + + pnpmDeps = testers.invalidateFetcherByDrvHash fetchPnpmDeps { + inherit (finalAttrs) pname version src; + inherit pnpm; + fetcherVersion = 4; + hash = "sha256-NDGKyqZasK13YkmNQ1ypP14rCP8wp2llT8bnKUi4/zo="; + }; + + nativeBuildInputs = [ + makeShellWrapper + nodejs-slim + pnpm + pnpmConfigHook + ]; + + buildPhase = '' + runHook preBuild + + pnpm build + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + install -Dm644 -t $out/lib/pnpm-12-test dist/index.js + + makeWrapper ${lib.getExe nodejs-slim} $out/bin/pnpm-12-test \ + --add-flags "$out/lib/pnpm-12-test" + + runHook postInstall + ''; + + __structuredAttrs = true; + + meta = { + license = lib.licenses.mit; + mainProgram = "pnpm-12-test"; + inherit (pnpm.meta) maintainers; + }; +}) diff --git a/pkgs/test/pnpm/pnpm_12_v4/src/.gitignore b/pkgs/test/pnpm/pnpm_12_v4/src/.gitignore new file mode 100644 index 000000000000..1eae0cf6700c --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/src/.gitignore @@ -0,0 +1,2 @@ +dist/ +node_modules/ diff --git a/pkgs/test/pnpm/pnpm_12_v4/src/index.ts b/pkgs/test/pnpm/pnpm_12_v4/src/index.ts new file mode 100644 index 000000000000..accefceba62b --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/src/index.ts @@ -0,0 +1 @@ +console.log("Hello World"); diff --git a/pkgs/test/pnpm/pnpm_12_v4/src/package.json b/pkgs/test/pnpm/pnpm_12_v4/src/package.json new file mode 100644 index 000000000000..db1ebc211925 --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/src/package.json @@ -0,0 +1,20 @@ +{ + "name": "pnpm12test", + "version": "1.0.0", + "description": "", + "main": "dist/index.js", + "scripts": { + "build": "tsc", + "start": "node dist/index.js" + }, + "license": "MIT", + "packageManager": "pnpm", + "type": "module", + "files": [ + "dist/" + ], + "devDependencies": { + "@types/node": "^25.5.0", + "typescript": "^6.0.2" + } +} diff --git a/pkgs/test/pnpm/pnpm_12_v4/src/pnpm-lock.yaml b/pkgs/test/pnpm/pnpm_12_v4/src/pnpm-lock.yaml new file mode 100644 index 000000000000..9443db3a4077 --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/src/pnpm-lock.yaml @@ -0,0 +1,39 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@types/node': + specifier: ^25.5.0 + version: 25.9.6 + typescript: + specifier: ^6.0.2 + version: 6.0.3 + +packages: + + '@types/node@25.9.6': + resolution: {integrity: sha512-JR6Q/PV5DKFvjrGFVqQJdeG0qvsqQQLDa3TzFrqVwhqRXqwNaxPo2KYCtCQXpOdIulCouKwT7a6in9nFthBAzw==} + + typescript@6.0.3: + resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@7.24.6: + resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==} + +snapshots: + + '@types/node@25.9.6': + dependencies: + undici-types: 7.24.6 + + typescript@6.0.3: {} + + undici-types@7.24.6: {} diff --git a/pkgs/test/pnpm/pnpm_12_v4/src/tsconfig.json b/pkgs/test/pnpm/pnpm_12_v4/src/tsconfig.json new file mode 100644 index 000000000000..3471bd329666 --- /dev/null +++ b/pkgs/test/pnpm/pnpm_12_v4/src/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "outDir": "dist", + "rootDir": ".", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + } +}