Skip to content

renovate: update pnpm.fetchDeps hash#426407

Merged
SuperSandro2000 merged 1 commit intoNixOS:masterfrom
SuperSandro2000:renovate-fix-hash
Jul 30, 2025
Merged

renovate: update pnpm.fetchDeps hash#426407
SuperSandro2000 merged 1 commit intoNixOS:masterfrom
SuperSandro2000:renovate-fix-hash

Conversation

@SuperSandro2000
Copy link
Copy Markdown
Member

This was not properly updated in a8c9a2a

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and others READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. labels Jul 18, 2025
@nix-owners nix-owners bot requested review from NyCodeGHG and natsukium July 18, 2025 14:56
@NyCodeGHG
Copy link
Copy Markdown
Member

I get a hash mismatch when I try to build this:

error: hash mismatch in fixed-output derivation '/nix/store/8m8hf458iygdqnpw0i8d9xm9859cy5s1-renovate-pnpm-deps.drv':
        likely URL: (unknown)
         specified: sha256-ENHTZ2MkD1TcOtNhNwCJfN/4FrYlGkfIeX/6wdfy7nY=
            got:    sha256-XOlFJFFyzbx8Bg92HXhVFFCI51j2GUK7+LJKfqVOQyU=

@SuperSandro2000
Copy link
Copy Markdown
Member Author

SuperSandro2000 commented Jul 18, 2025

I now consistently get this error:

 ERR_PNPM_NO_OFFLINE_TARBALL  A package is missing from the store but cannot download it in offline mode. The missing package may be downloaded from https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz.

@NyCodeGHG
Copy link
Copy Markdown
Member

I now consistently get this error:

 ERR_PNPM_NO_OFFLINE_TARBALL  A package is missing from the store but cannot download it in offline mode. The missing package may be downloaded from https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz.

It builds fine on my machine, not sure whats going on here

@Scrumplex
Copy link
Copy Markdown
Member

I now consistently get this error:

 ERR_PNPM_NO_OFFLINE_TARBALL  A package is missing from the store but cannot download it in offline mode. The missing package may be downloaded from https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz.

Same here.

@NyCodeGHG
Copy link
Copy Markdown
Member

I was able to reproduce the failure.
sudo nom-build -A renovate --option build-dir /nix/var/nix/builds builds successfully for me, but if I run the build on a tmpfs filesystem with sudo nom-build -A renovate --option build-dir /tmp/nix-build-test, the build fails.
I'm not sure if this is the fault of pnpm or nix.
I also tried building on /dev/shm since it's also a tmpfs, and that also fails.

@Scrumplex Scrumplex mentioned this pull request Jul 19, 2025
13 tasks
@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 19, 2025

This was not properly updated in a8c9a2a

That looks fine, I'm pretty sure the same problem would've occurred before that PR, fetcherVersion = 1 produces the same hash as before (including the PNPM bug that changes hashes on different machines). As previously mentioned fetcherVersion = 2 produces a more stable hash

I tried building this multiple times (with --rebuild renovate.pnpmDeps and --rebuild renovate) both on this commit and after rebasing to master, all of the attempts worked

 ERR_PNPM_NO_OFFLINE_TARBALL  A package is missing from the store but cannot download it in offline mode. The missing package may be downloaded from https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz.

That's weird... can you try again? I only got it when using pnpm deploy bug with pnpm_9 or newer, I'm not sure what could cause it :/

but if I run the build on a tmpfs filesystem with sudo nom-build -A renovate --option build-dir /tmp/nix-build-test

That builds for me and so do these:

  • sudo nom-build -A renovate.pnpmDeps --check --option build-dir /tmp/nix-build-test
  • sudo nom-build -A renovate --check --option build-dir /tmp/nix-build-test

Edit: on a VM I also got ERR_PNPM_NO_OFFLINE_TARBALL

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 19, 2025

The same command succeeds on my main machine which is more up-to-date, and fails on a VM where I test other nixpkgs stuff. The command I used is nom build nixpkgs/4e08a348d4fb9a9583506fccdafa7a54c1b72ea8#renovate (same with the commit on this PR)

Partial build log on my VM
renovate> Finished pnpmConfigHook
renovate> configurePhase completed in 39 seconds
renovate> Running phase: buildPhase
renovate> 
renovate> > renovate@41.21.3 build /build/source
renovate> > run-s clean 'generate:*' 'compile:*' create-json-schema
renovate> 
renovate> 
renovate> > renovate@41.21.3 clean /build/source
renovate> > rimraf dist tmp
renovate> 
renovate> 
renovate> > renovate@41.21.3 generate:imports /build/source
renovate> > node tools/generate-imports.mjs
renovate> 
renovate> generating imports
renovate> > data/debian-distro-info.json
renovate> > data/kubernetes-api.json5
renovate> > data/lambda-node-js-schedule.json
renovate> > data/node-js-schedule.json
renovate> > data/ubuntu-distro-info.json
renovate> > node_modules/emojibase-data/en/shortcodes/github.json
renovate> generating hashes
renovate> 
renovate> > renovate@41.21.3 compile:ts /build/source
renovate> > tsc -p tsconfig.app.json
renovate> 
renovate> 
renovate> > renovate@41.21.3 create-json-schema /build/source
renovate> > tsx tools/generate-schema.ts && prettier --write --cache 'renovate-schema.json'
renovate> 
renovate>  INFO: Generating json-schema
renovate> find: './node_modules': No such file or directory
renovate> Lockfile is up to date, resolution step is skipped
renovate> Packages: +770           
renovate> 
renovate>  ERR_PNPM_NO_OFFLINE_TARBALL  A package is missing from the store but cannot download it in offline mode. The missing package may
 be downloaded from https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz.
renovate> Progress: resolved 770, reused 730, downloaded 0, added 729
Partial build log on my main
renovate> Finished pnpmConfigHook
renovate> configurePhase completed in 42 seconds
renovate> Running phase: buildPhase
renovate>
renovate> > renovate@41.21.3 build /build/source
renovate> > run-s clean 'generate:*' 'compile:*' create-json-schema
renovate>
renovate>
renovate> > renovate@41.21.3 clean /build/source
renovate> > rimraf dist tmp
renovate>
renovate>
renovate> > renovate@41.21.3 generate:imports /build/source
renovate> > node tools/generate-imports.mjs
renovate>
renovate> generating imports
renovate> > data/debian-distro-info.json
renovate> > data/kubernetes-api.json5
renovate> > data/lambda-node-js-schedule.json
renovate> > data/node-js-schedule.json
renovate> > data/ubuntu-distro-info.json
renovate> > node_modules/emojibase-data/en/shortcodes/github.json
renovate> generating hashes
renovate>
renovate> > renovate@41.21.3 compile:ts /build/source
renovate> > tsc -p tsconfig.app.json
renovate>
renovate>
renovate> > renovate@41.21.3 create-json-schema /build/source
renovate> > tsx tools/generate-schema.ts && prettier --write --cache 'renovate-schema.json'
renovate>
renovate>  INFO: Generating json-schema
renovate> find: './node_modules': No such file or directory
renovate> Lockfile is up to date, resolution step is skipped
renovate> Packages: +770
renovate>
renovate> Progress: resolved 770, reused 770, downloaded 0, added 770, done
renovate>
renovate> dependencies:
renovate> + @aws-sdk/client-codecommit 3.840.0
renovate> + @aws-sdk/client-ec2 3.840.0
renovate> + @aws-sdk/client-ecr 3.840.0
renovate> + @aws-sdk/client-eks 3.840.0
renovate> + @aws-sdk/client-rds 3.840.0
renovate> + @aws-sdk/client-s3 3.840.0
renovate> + @aws-sdk/credential-providers 3.840.0
renovate> + @baszalmstra/rattler 0.2.1
renovate> + @breejs/later 4.2.0
renovate> + @cdktf/hcl2json 0.21.0
renovate> + @opentelemetry/api 1.9.0
renovate> + @opentelemetry/context-async-hooks 2.0.1
renovate> + @opentelemetry/exporter-trace-otlp-http 0.202.0
renovate> + @opentelemetry/instrumentation 0.202.0
renovate> + @opentelemetry/instrumentation-bunyan 0.48.0
renovate> + @opentelemetry/instrumentation-http 0.202.0
renovate> + @opentelemetry/resource-detector-aws 2.2.0
renovate> + @opentelemetry/resource-detector-azure 0.9.0
renovate> + @opentelemetry/resource-detector-gcp 0.36.0
renovate> + @opentelemetry/resource-detector-github 0.31.0
renovate> + @opentelemetry/resources 2.0.1
renovate> + @opentelemetry/sdk-trace-base 2.0.1
renovate> + @opentelemetry/sdk-trace-node 2.0.1
renovate> + @opentelemetry/semantic-conventions 1.34.0
renovate> + @pnpm/parse-overrides 1001.0.0
renovate> + @qnighy/marshal 0.1.3
renovate> + @renovatebot/detect-tools 1.1.0
renovate> + @renovatebot/kbpgp 4.0.1
renovate> + @renovatebot/osv-offline 1.6.5
renovate> + @renovatebot/pep440 4.1.0
renovate> + @renovatebot/ruby-semver 4.0.0
renovate> + @sindresorhus/is 7.0.2
renovate> + @yarnpkg/core 4.4.2
renovate> + @yarnpkg/parsers 3.0.3
renovate> + agentkeepalive 4.6.0
renovate> + async-mutex 0.5.0
renovate> + auth-header 1.0.0
renovate> + aws4 1.13.2
renovate> + azure-devops-node-api 15.1.0
renovate> + bunyan 1.8.15
renovate> + cacache 19.0.1
renovate> + chalk 5.4.1
renovate> + changelog-filename-regex 2.0.1
renovate> + clean-git-ref 2.0.1
renovate> + commander 14.0.0
renovate> + conventional-commits-detector 1.0.3
renovate> + croner 9.1.0
renovate> + cronstrue 2.61.0
renovate> + deepmerge 4.3.1
renovate> + dequal 2.0.3
renovate> + detect-indent 7.0.1
renovate> + diff 8.0.2
renovate> + editorconfig 3.0.0
renovate> + email-addresses 5.0.0
renovate> + emoji-regex 10.4.0
renovate> + emojibase 16.0.0
renovate> + emojibase-regex 16.0.0
renovate> + extract-zip 2.0.1
renovate> + find-packages 10.0.4
renovate> + find-up 7.0.0
renovate> + fs-extra 11.3.0
renovate> + git-url-parse 16.1.0
renovate> + github-url-from-git 1.5.0
renovate> + glob 11.0.3
renovate> + global-agent 3.0.0
renovate> + good-enough-parser 1.1.23
renovate> + google-auth-library 10.1.0
renovate> + got 11.8.6
renovate> + graph-data-structure 4.5.0
renovate> + handlebars 4.7.8
renovate> + ignore 7.0.5
renovate> + ini 5.0.0
renovate> + json-dup-key-validator 1.0.3
renovate> + json-stringify-pretty-compact 4.0.0
renovate> + json5 2.2.3
renovate> + jsonata 2.0.6
renovate> + jsonc-parser 3.3.1
renovate> + klona 2.0.6
renovate> + luxon 3.6.1
renovate> + markdown-it 14.1.0
renovate> + markdown-table 3.0.4
renovate> + minimatch 10.0.3
renovate> + moo 0.5.2
renovate> + ms 2.1.3
renovate> + nanoid 5.1.5
renovate> + neotraverse 0.6.18
renovate> + node-html-parser 7.0.1
renovate> + p-all 5.0.0
renovate> + p-map 7.0.3
renovate> + p-queue 8.1.0
renovate> + p-throttle 7.0.0
renovate> + parse-link-header 2.0.0
renovate> + prettier 3.6.2
renovate> + protobufjs 7.5.3
renovate> + punycode 2.3.1
renovate> + redis 4.7.1
renovate> + remark 15.0.1
renovate> + remark-github 12.0.0
renovate> + safe-stable-stringify 2.5.0
renovate> + sax 1.4.1
renovate> + semver 7.7.2
renovate> + semver-stable 3.0.0
renovate> + semver-utils 1.1.4
renovate> + shlex 2.1.2
renovate> + simple-git 3.28.0
renovate> + slugify 1.6.6
renovate> + source-map-support 0.5.21
renovate> + toml-eslint-parser 0.10.0
renovate> + tslib 2.8.1
renovate> + upath 2.0.1
renovate> + url-join 5.0.0
renovate> + validate-npm-package-name 6.0.1
renovate> + vuln-vects 1.1.0
renovate> + xmldoc 2.0.2
renovate> + yaml 2.8.0
renovate> + zod 3.25.67
renovate>
renovate> optionalDependencies:
renovate> + better-sqlite3 12.2.0
renovate> + openpgp 6.1.1
renovate> + re2 1.22.1
renovate>
renovate> devDependencies: skipped
renovate>
renovate> Done in 4.9s using pnpm v10.13.1

Note that renovate> find: './node_modules': No such file or directory is in both of the log files, can you fix that?

Building renovate.pnpmDeps succeeds on both machines, I think we discovered yet another PNPM bug, I'm not sure how to even start debugging it

@NyCodeGHG
Copy link
Copy Markdown
Member

NyCodeGHG commented Jul 19, 2025

That builds for me and so do these:

Is your /tmp a tmpfs? (do you have boot.tmp.useTmpfs enabled?)

Note that renovate> find: './node_modules': No such file or directory is in both of the log files, can you fix that?

That is expected since the find command deletes the directories.

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 19, 2025

Is your /tmp a tmpfs? (do you have boot.tmp.useTmpfs enabled?)

Sorry, I thought it was enabled by default, I'll also try that later

Let's continue further discussion in #426636, as this ERR_PNPM_NO_OFFLINE_TARBALL bug affects multiple packages

@Scrumplex
Copy link
Copy Markdown
Member

This issue is caused by the invocation of pnpm install --offline --prod --ignore-scripts. I am not quite sure why. Is it possible that package.json changes during buildPhase?

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 24, 2025

@Scrumplex the breakage was caused by a patch-shebangs PR, unrelated to PNPM. Fix is already in staging, see #426636 (comment)

@Scrumplex
Copy link
Copy Markdown
Member

It seems like that patchShebangs fix has not fixed the renovate package.

@SuperSandro2000
Copy link
Copy Markdown
Member Author

Still same error

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 29, 2025

Yes, it doesn't work. Probably that patch-shebangs.sh PR introduced 2 bugs and only 1 was fixed. More info at #426636

@lf-
Copy link
Copy Markdown
Member

lf- commented Jul 30, 2025

This is plausibly because of a nixpkgs bug (pnpm doing something busted) which is triggered by recent lix changes to move the build directory: https://git.lix.systems/lix-project/lix/issues/904

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 30, 2025

Fix is at #429554 which makes sure PNPM doesn't use hard links, I don't think it's related to Lix changes

@SuperSandro2000
Copy link
Copy Markdown
Member Author

The build directory was generally moved.

@SuperSandro2000
Copy link
Copy Markdown
Member Author

Lets see what happens with the other PR merged.

@SuperSandroBot
Copy link
Copy Markdown

nixpkgs-review result

Generated using nixpkgs-review-gha

Command: nixpkgs-review pr 426407

Logs: https://github.com/SuperSandro2000/nixpkgs-review-gha/actions/runs/16628097129


x86_64-linux

✅ 1 package built:
  • renovate

aarch64-linux

✅ 1 package built:
  • renovate

x86_64-darwin (sandbox = true)

❌ 1 package failed to build:
  • renovate

Error logs: `x86_64-darwin`
renovate
Error: listen EPERM: operation not permitted /nix/build/nix-build-renovate-41.21.3.drv-3770-2242955635/tsx-351/13671.pipe
    at Server.setupListenHandle [as _listen2] (node:net:1918:21)
    at listenInCluster (node:net:1997:12)
    at Server.listen (node:net:2119:5)
    at file:///nix/build/nix-build-renovate-41.21.3.drv-3770-2242955635/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:53:31537
    at new Promise ()
    at createIpcServer (file:///nix/build/nix-build-renovate-41.21.3.drv-3770-2242955635/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:53:31515)
    at async file:///nix/build/nix-build-renovate-41.21.3.drv-3770-2242955635/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:55:459 {
  code: 'EPERM',
  errno: -1,
  syscall: 'listen',
  address: '/nix/build/nix-build-renovate-41.21.3.drv-3770-2242955635/tsx-351/13671.pipe',
  port: -1
}

Node.js v22.17.0
 ELIFECYCLE  Command failed with exit code 1.
ERROR: "create-json-schema" exited with 1.
 ELIFECYCLE  Command failed with exit code 1.


aarch64-darwin (sandbox = true)

❌ 1 package failed to build:
  • renovate

Error logs: `aarch64-darwin`
renovate
Error: listen EPERM: operation not permitted /nix/build/nix-build-renovate-41.21.3.drv-3368-389925053/tsx-351/12898.pipe
    at Server.setupListenHandle [as _listen2] (node:net:1918:21)
    at listenInCluster (node:net:1997:12)
    at Server.listen (node:net:2119:5)
    at file:///nix/build/nix-build-renovate-41.21.3.drv-3368-389925053/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:53:31537
    at new Promise ()
    at createIpcServer (file:///nix/build/nix-build-renovate-41.21.3.drv-3368-389925053/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:53:31515)
    at async file:///nix/build/nix-build-renovate-41.21.3.drv-3368-389925053/source/node_modules/.pnpm/tsx@4.20.3/node_modules/tsx/dist/cli.mjs:55:459 {
  code: 'EPERM',
  errno: -1,
  syscall: 'listen',
  address: '/nix/build/nix-build-renovate-41.21.3.drv-3368-389925053/tsx-351/12898.pipe',
  port: -1
}

Node.js v22.17.0
 ELIFECYCLE  Command failed with exit code 1.
ERROR: "create-json-schema" exited with 1.
 ELIFECYCLE  Command failed with exit code 1.

@gepbird
Copy link
Copy Markdown
Contributor

gepbird commented Jul 30, 2025

Currently this package works master, if we want this PR you could give it a more generic name, like renovate: update pnpm.fetchDeps hash?

The darwin failure is interesting, but I don't have a darwin machine. Both the linux and darwin builds started failing at the same time, maybe there was some darwin specific breaking change in that staging-next merge?

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Jul 30, 2025
@SuperSandro2000 SuperSandro2000 changed the title renovate: fix vendor hash renovate: update pnpm.fetchDeps hash Jul 30, 2025
@SuperSandro2000 SuperSandro2000 merged commit 98a5ff9 into NixOS:master Jul 30, 2025
27 of 29 checks passed
@SuperSandro2000 SuperSandro2000 deleted the renovate-fix-hash branch July 30, 2025 20:14
@SuperSandro2000
Copy link
Copy Markdown
Member Author

I squash merged the PR to update the commit title.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

10.rebuild-darwin: 1-10 This PR causes between 1 and 10 packages to rebuild on Darwin. 10.rebuild-darwin: 1 This PR causes 1 package to rebuild on Darwin. 10.rebuild-linux: 1-10 This PR causes between 1 and 10 packages to rebuild on Linux. 10.rebuild-linux: 1 This PR causes 1 package to rebuild on Linux. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants