diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix index 9f41bfb92f9c..8678860268b9 100644 --- a/pkgs/by-name/re/renovate/package.nix +++ b/pkgs/by-name/re/renovate/package.nix @@ -4,7 +4,7 @@ fetchFromGitHub, makeWrapper, nodejs_24, - pnpm_10, + pnpm_11, fetchPnpmDeps, pnpmConfigHook, python3, @@ -15,18 +15,23 @@ yq-go, cctools, }: + let nodejs = nodejs_24; + pnpm = pnpm_11; in stdenv.mkDerivation (finalAttrs: { pname = "renovate"; - version = "43.214.1"; + version = "44.13.1"; + + __structuredAttrs = true; + strictDeps = true; src = fetchFromGitHub { owner = "renovatebot"; repo = "renovate"; tag = finalAttrs.version; - hash = "sha256-S5ixP4Dp/YDv23kE5lvmp/Px6GrF9B6/wwSiKUwVWhA="; + hash = "sha256-2N+dQnuQwQNt7SZlIYq0CT2dRMiOF947MJZZ8BhZpcI="; }; postPatch = '' @@ -38,7 +43,7 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper nodejs pnpmConfigHook - pnpm_10 + pnpm python3 yq-go ] @@ -49,9 +54,9 @@ stdenv.mkDerivation (finalAttrs: { pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; - pnpm = pnpm_10; - fetcherVersion = 3; - hash = "sha256-A8aL5ZF0tFKi0uCXxOQMzxByAIVyt76wnLvolFVYKuI="; + inherit pnpm; + fetcherVersion = 4; + hash = "sha256-xm4H+PIpVcisw8wKz77+v6iCcwEpkpLZ6awtwXPNBc8="; }; env.COREPACK_ENABLE_STRICT = 0; @@ -61,25 +66,17 @@ stdenv.mkDerivation (finalAttrs: { # relax nodejs version yq '.engines.node = "${nodejs.version}"' -i package.json + '' + # pnpm install gets run with --ignore-scripts so we need to manually build native dependencies (e.g. re2) + # Keep https://github.com/renovatebot/renovate/blob/main/pnpm-workspace.yaml#L9 in mind when updating, + # new native dependencies could bloat up binary size. + + '' + pnpm rebuild + rm -rf node_modules/.pnpm/re2*/node_modules/re2/build/Release/{obj.target,.deps} \ + node_modules/.pnpm/re2*/node_modules/re2/vendor pnpm build - find -name 'node_modules' -type d -exec rm -rf {} \; || true - pnpm install --offline --prod --ignore-scripts - '' - # The optional dependencies re2 and better-sqlite3 are not built by pnpm and need to be built manually. - # If re2 is not built, you will get an annoying warning when you run renovate. - # better-sqlite3 is required. - + '' - pushd node_modules/.pnpm/re2*/node_modules/re2 - - mkdir -p $HOME/.node-gyp/${nodejs.version} - echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion - ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version} - export npm_config_nodedir=${nodejs} - npm run rebuild - rm -rf build/Release/{obj.target,.deps} vendor - - popd + pnpm prune --prod --ignore-scripts runHook postBuild '';