From 70f14cf94e582d2ec7608881f0c55008d80dc4ed Mon Sep 17 00:00:00 2001 From: David Morgan Date: Fri, 14 Aug 2026 20:34:11 +0100 Subject: [PATCH] cdktn-cli: 0.23.3 -> 0.24.0 --- pkgs/by-name/cd/cdktn-cli/package.nix | 75 +++++++++++++-------------- 1 file changed, 37 insertions(+), 38 deletions(-) diff --git a/pkgs/by-name/cd/cdktn-cli/package.nix b/pkgs/by-name/cd/cdktn-cli/package.nix index ff20b260f462..4f2532cead61 100644 --- a/pkgs/by-name/cd/cdktn-cli/package.nix +++ b/pkgs/by-name/cd/cdktn-cli/package.nix @@ -4,33 +4,42 @@ buildGoModule, faketty, fetchFromGitHub, - fetchYarnDeps, - fixup-yarn-lock, + fetchPnpmDeps, go, makeWrapper, nodejs, nix-update-script, patchelf, + pnpm_10, + pnpmConfigHook, removeReferencesTo, - testers, - yarn, versionCheckHook, }: stdenv.mkDerivation (finalAttrs: { pname = "cdktn-cli"; - version = "0.23.3"; + version = "0.24.0"; src = fetchFromGitHub { owner = "open-constructs"; repo = "cdk-terrain"; tag = "v${finalAttrs.version}"; - hash = "sha256-k3xAaJiqldRZubAFrRuNM1e+3kH/5vv0maEeT/gdqK0="; + hash = "sha256-8vUGGg31MkuXdyvZo83GIoLZeJlOKIFgg3KlYU2F8hY="; }; - offlineCache = fetchYarnDeps { - yarnLock = "${finalAttrs.src}/yarn.lock"; - hash = "sha256-9nhv31ljJ8DphOot3TAsYhbV6cx7Ovfe+ll+V2vJWx8="; + pnpmWorkspaces = [ "cdktn-cli..." ]; + + pnpmDeps = fetchPnpmDeps { + inherit (finalAttrs) + pname + version + src + pnpmInstallFlags + pnpmWorkspaces + ; + fetcherVersion = 3; + hash = "sha256-2DTexRQg/n454cKaYitFT3KAT8BR+153KxlYMaa1NXM="; + pnpm = pnpm_10; }; hcl2json-go-modules = @@ -55,26 +64,27 @@ stdenv.mkDerivation (finalAttrs: { env.GOWORK = "off"; }).goModules; + pnpmInstallFlags = [ "--shamefully-hoist" ]; strictDeps = true; disallowedReferences = [ go ]; nativeBuildInputs = [ faketty - fixup-yarn-lock go makeWrapper nodejs patchelf + pnpm_10 + pnpmConfigHook removeReferencesTo - yarn ]; postPatch = '' - # wasm_exec has moved to lib in newer versions of Go - substituteInPlace packages/@cdktn/hcl-tools/prebuild.sh \ - --replace-fail "misc/wasm/wasm_exec.js" "lib/wasm/wasm_exec.js" - substituteInPlace packages/@cdktn/hcl2json/prebuild.sh \ - --replace-fail "misc/wasm/wasm_exec.js" "lib/wasm/wasm_exec.js" + # Fix tests (workaround for https://github.com/open-constructs/cdk-terrain/issues/381) + substituteInPlace jest.preset.js \ + --replace-fail "...nxPreset," "...nxPreset, transform: {}," + + patchShebangs packages ''; preConfigure = '' @@ -87,24 +97,12 @@ stdenv.mkDerivation (finalAttrs: { export CHECKPOINT_DISABLE=1 ''; - configurePhase = '' - runHook preConfigure - - export HOME=$(mktemp -d) - yarn config --offline set yarn-offline-mirror $offlineCache - fixup-yarn-lock yarn.lock - yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install - patchShebangs node_modules packages - - runHook postConfigure - ''; - buildPhase = '' runHook preBuild - bash ./tools/align-version.sh + node tools/align-version.mjs - faketty yarn --offline build + faketty pnpm --filter "cdktn-cli..." run build runHook postBuild ''; @@ -114,9 +112,9 @@ stdenv.mkDerivation (finalAttrs: { runHook preCheck # Skip tests that require terraform (unfree) - yarn --offline workspace cdktn-cli jest \ + pnpm --filter cdktn-cli exec jest \ --testPathIgnorePatterns \ - "src/test/cmds/(convert|init).test.ts" + "src/test/cmds/convert.test.ts" runHook postCheck ''; @@ -124,14 +122,15 @@ stdenv.mkDerivation (finalAttrs: { installPhase = '' runHook preInstall - yarn --offline --production install + pnpm install --force --offline --production --ignore-scripts --shamefully-hoist --filter "cdktn-cli..." - mkdir -p "$out/lib/node_modules/cdktn-cli" - cp -rL node_modules packages/cdktn-cli/bundle packages/cdktn-cli/package.json "$out/lib/node_modules/cdktn-cli/" + mkdir -p "$out/lib/cdktn" + cp -r node_modules packages package.json "$out/lib/cdktn/" makeWrapper "${lib.getExe nodejs}" "$out/bin/cdktn" \ + --set-default CHECKPOINT_DISABLE 1 \ --add-flags "--no-warnings=DEP0040" \ - --add-flags "$out/lib/node_modules/cdktn-cli/bundle/bin/cdktn.js" + --add-flags "$out/lib/cdktn/packages/cdktn-cli/bundle/bin/cdktn.js" runHook postInstall ''; @@ -139,8 +138,8 @@ stdenv.mkDerivation (finalAttrs: { postInstall = '' # Go isn't needed at runtime, so remove these to decrease the closure size remove-references-to -t ${go} \ - "$out/lib/node_modules/cdktn-cli/node_modules/@cdktn/hcl-tools/main.wasm" \ - "$out/lib/node_modules/cdktn-cli/node_modules/@cdktn/hcl2json/main.wasm" + "$out/lib/cdktn/packages/@cdktn/hcl-tools/main.wasm" \ + "$out/lib/cdktn/packages/@cdktn/hcl2json/main.wasm" ''; nativeInstallCheckInputs = [