| 13 Oct 2023 |
Cobalt | Downstream, though examples from nixpkg's might be nice too. | 17:00:20 |
Cobalt | In general just tested and used examples. Ofc nixpkg's might be good too but imo it's sometimes a bit too complex | 17:01:19 |
| 14 Oct 2023 |
Dandellion | Does buildNpm have troubles with sourcehut git sources? I'm trying to build https://gitdab.com/cadence/out-of-your-element but I'm getting:
out-of-your-element> unpacking sources
out-of-your-element> unpacking source archive /nix/store/8xka9inmpaq7qb0g1s80r9qvnilidpb8-source
out-of-your-element> source root is source
out-of-your-element> patching sources
out-of-your-element> Executing npmConfigHook
out-of-your-element> Configuring npm
out-of-your-element> Validating consistency between /build/source/package-lock.json and /nix/store/ydflkz6y8r7a1wm0q29r6nqmgv3n2wyj-out-of-your-element-1.2-npm-deps/package-lock.json
out-of-your-element> Fixing lockfile
out-of-your-element> Making cache writable
out-of-your-element> Installing dependencies
out-of-your-element> npm verb cli /nix/store/x8vrc1c6r8nn454whr99bxc5hdy5ybjf-nodejs-18.18.0/bin/node /nix/store/x8vrc1c6r8nn454whr99bxc5hdy5ybjf-nodejs-18.18.0/bin/npm
out-of-your-element> npm info using npm@9.8.1
out-of-your-element> npm info using node@v18.18.0
out-of-your-element> npm verb title npm ci
out-of-your-element> npm verb argv "ci" "--ignore-scripts" "--loglevel" "verbose"
out-of-your-element> npm verb logfile logs-max:10 dir:/build/cache/_logs/2023-10-14T03_08_27_400Z-
out-of-your-element> npm verb logfile /build/cache/_logs/2023-10-14T03_08_27_400Z-debug-0.log
out-of-your-element> npm WARN tarball tarball data for discord-markdown@git+https://git.sr.ht/~cadence/nodejs-discord-markdown#abc56d544072a1dc5624adfea455b0e902adf7b3 (null) seems to be corrupted. Trying again.
out-of-your-element> npm WARN tarball tarball data for discord-markdown@git+https://git.sr.ht/~cadence/nodejs-discord-markdown#abc56d544072a1dc5624adfea455b0e902adf7b3 (null) seems to be corrupted. Trying again.
out-of-your-element> npm http fetch GET 200 https://codeload.github.com/cloudrac3r/mixin-deep/tar.gz/2dd70d6b8644263f7ed2c1620506c9eb3f11d32a 263ms (cache stale)
out-of-your-element> npm http fetch GET 200 https://codeload.github.com/cloudrac3r/tap-out/tar.gz/1b4ec6084aedb9f44ccaa0c7185ff9bfd83da771 242ms (cache stale)
out-of-your-element> npm http fetch GET 200 https://codeload.github.com/cloudrac3r/tap-dot/tar.gz/9dd7750ececeae3a96afba91905be812b6b2cc2d 244ms (cache stale)
out-of-your-element> npm http fetch GET 200 https://codeload.github.com/cloudrac3r/giframe/tar.gz/1630f4d3b2bf5acd197409c85edd11e0da72d0a1 274ms (cache stale)
out-of-your-element> npm verb stack Error: An unknown git error occurred
out-of-your-element> npm verb stack at makeError (/nix/store/x8vrc1c6r8nn454whr99bxc5hdy5ybjf-nodejs-18.18.0/lib/node_modules/npm/node_modules/@npmcli/git/lib/make-error.js:28:13)
out-of-your-element> npm verb stack at /nix/store/x8vrc1c6r8nn454whr99bxc5hdy5ybjf-nodejs-18.18.0/lib/node_modules/npm/node_modules/@npmcli/git/lib/spawn.js:37:26
out-of-your-element> npm verb stack at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
out-of-your-element> npm verb cwd /build/source
out-of-your-element> npm verb Linux 6.5.5
out-of-your-element> npm verb node v18.18.0
out-of-your-element> npm verb npm v9.8.1
out-of-your-element> npm ERR! code ENOENT
out-of-your-element> npm ERR! syscall spawn git
out-of-your-element> npm ERR! path git
out-of-your-element> npm ERR! errno -2
out-of-your-element> npm ERR! enoent An unknown git error occurred
out-of-your-element> npm ERR! enoent This is related to npm not being able to find a file.
out-of-your-element> npm ERR! enoent
out-of-your-element> npm verb exit -2
out-of-your-element> npm verb unfinished npm timer reify 1697252907725
out-of-your-element> npm verb unfinished npm timer reify:unpack 1697252907754
out-of-your-element> npm verb unfinished npm timer reifyNode:node_modules/discord-markdown 1697252907764
out-of-your-element> npm verb code -2
| 03:14:41 |
Dandellion | If I give it git through nativeBuildInputs it'll fail to reach out of its sandbox while running git --no-replace-objects ls-remote https://git.sr.ht/~cadence/nodejs-discord-markdown which seems super weird | 03:17:33 |
Dandellion | ah the issue is not in the fetcher it's in the config step | 03:28:17 |
I use NixOS btw | Is there a reason mkYarnPackage doesn't cache or am I doing something wrong? All dependecies are cached but the package itself isn't so it rebuilds every time | 09:45:33 |
Lily Foster | In reply to @dandellion:dodsorf.as If I give it git through nativeBuildInputs it'll fail to reach out of its sandbox while running git --no-replace-objects ls-remote https://git.sr.ht/~cadence/nodejs-discord-markdown which seems super weird Hmmmm if i remember i'll try to investigate later of it's just our fetcher not doing something right or if npm is the one who is choking on it | 11:46:03 |
Lily Foster | In reply to @ahbk:matrix.org Is there a reason mkYarnPackage doesn't cache or am I doing something wrong? All dependecies are cached but the package itself isn't so it rebuilds every time Cache like upload to cachix or something? | 11:46:25 |
I use NixOS btw | In reply to @lily:lily.flowers Cache like upload to cachix or something? No sorry not cached. I'm not sure I understand this, but I when the flake is changed, I guess the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds). This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake: No https://github.com/ahbk/ahbk/blob/main/flake.nix | 14:40:39 |
I use NixOS btw | In reply to @lily:lily.flowers Cache like upload to cachix or something? * No sorry not cached. I'm not sure I understand this, but I when the flake is changed, I guess the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds). This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake:
https://github.com/ahbk/ahbk/blob/main/flake.nix
| 14:40:47 |
I use NixOS btw | * No sorry not cached. I'm not sure I understand this, but when the flake is changed, I guess the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds). This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake:
https://github.com/ahbk/ahbk/blob/main/flake.nix
| 14:40:56 |
I use NixOS btw | * No sorry not cached. I'm not sure I understand this, but when the flake is changed I think the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds), even if the change didn't affect the package. This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake:
https://github.com/ahbk/ahbk/blob/main/flake.nix
| 14:41:38 |
I use NixOS btw | * No sorry not cached. I'm not sure I understand this, but when the flake is changed I think the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds), even if the change didn't affect the package. This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake:
https://github.com/ahbk/ahbk/blob/main/flake.nix#L39
| 14:42:36 |
Lily Foster | In reply to @ahbk:matrix.org
No sorry not cached. I'm not sure I understand this, but when the flake is changed I think the yarn package has to be recalculated or evaluated which takes some time (about 15 seconds), even if the change didn't affect the package. This is different from the other packages in the flake which are evaluated almost immediately if they haven't been changed. I experienced this as a cache miss but I realize now that it is not about that. Here's the flake:
https://github.com/ahbk/ahbk/blob/main/flake.nix#L39
Ah, you might want to look into something like https://github.com/numtide/nix-filter | 14:44:13 |
I use NixOS btw | neat, thanks! | 14:45:29 |
Dandellion | In reply to @lily:lily.flowers Hmmmm if i remember i'll try to investigate later of it's just our fetcher not doing something right or if npm is the one who is choking on it I made an impure derivation, and now it's failing with:
out-of-your-element> npm ERR! command git --no-replace-objects ls-remote https://git.sr.ht/~cadence/nodejs-discord-markdown
out-of-your-element> npm ERR! fatal: unable to access 'https://git.sr.ht/~cadence/nodejs-discord-markdown/': OpenSSL/3.0.10: error:16000069:STORE routines::unregistered scheme
out-of-your-element> npm verb exit 128
out-of-your-element> npm verb unfinished npm timer reify 1697324205527
out-of-your-element> npm verb unfinished npm timer reify:unpack 1697324205560
out-of-your-element> npm verb unfinished npm timer reifyNode:node_modules/discord-markdown 1697324205573
out-of-your-element> npm verb code 128
I don't know if it's very relevant, but it's kind of sus
| 22:59:52 |
Lily Foster | In reply to @dandellion:dodsorf.as
I made an impure derivation, and now it's failing with:
out-of-your-element> npm ERR! command git --no-replace-objects ls-remote https://git.sr.ht/~cadence/nodejs-discord-markdown
out-of-your-element> npm ERR! fatal: unable to access 'https://git.sr.ht/~cadence/nodejs-discord-markdown/': OpenSSL/3.0.10: error:16000069:STORE routines::unregistered scheme
out-of-your-element> npm verb exit 128
out-of-your-element> npm verb unfinished npm timer reify 1697324205527
out-of-your-element> npm verb unfinished npm timer reify:unpack 1697324205560
out-of-your-element> npm verb unfinished npm timer reifyNode:node_modules/discord-markdown 1697324205573
out-of-your-element> npm verb code 128
I don't know if it's very relevant, but it's kind of sus
That is pretty weird, but i'm not sure how relevant it is. I'm assuming this is all an artifact of that npm does not consider sourcehut a source that it can pull tarballs from and must fall back to git checkout. As for where that is going wrong, i need to dive in to our tooling again and instrument npm to find why it doesn't like that | 23:02:16 |
Dandellion | fwiw running nix develop on the derivation, and then manually running the npmConfigHook and such does succesfully build it | 23:03:20 |
Lily Foster | In reply to @dandellion:dodsorf.as fwiw running nix develop on the derivation, and then manually running the npmConfigHook and such does succesfully build it That's expected since dev shell lets npm call out to the internet when it's not supposed to need to (npm gets very very happy about silently deciding something is wrong and deleting and redownloading from the internet....) | 23:04:12 |
Lily Foster | Dandellion: Do you think you could share your derivation for me to poke at later? | 23:04:49 |
Dandellion | sure! | 23:04:56 |
Dandellion | In reply to @lily:lily.flowers That's expected since dev shell lets npm call out to the internet when it's not supposed to need to (npm gets very very happy about silently deciding something is wrong and deleting and redownloading from the internet....) Ah right, yeah, I'm mainly confused about why the impure derivation then fails to build | 23:05:30 |
Dandellion | since nix develop should also come with npmDeps from the npm fetcher | 23:05:52 |
Lily Foster | Yeah it should make those available for npm when running the config hook | 23:06:14 |
Dandellion | https://github.com/dali99/nixos-matrix-modules/commit/ad76e1a94ebb99b34e1fa021e5a0e0b870f7016f | 23:08:11 |
| 15 Oct 2023 |
| felschr joined the room. | 20:53:53 |
felschr | Lily Foster, I guess buildNpmPackage could add a npmWorkspaces option to simplify building multiple workspaces. It's not really an issue, though, to just build the other packages in a preBuild. | 20:55:25 |
felschr | Also, thank you for your help on that PR again. | 20:57:18 |
Lily Foster | In reply to @felschr:matrix.org Lily Foster, I guess buildNpmPackage could add a npmWorkspaces option to simplify building multiple workspaces. It's not really an issue, though, to just build the other packages in a preBuild. It's weird to understand what that would mean though. Like do they all just get installed side-by-side in $out/lib/node_modules and bins all installed in $out/bin? | 20:57:22 |
felschr | hmm, right | 20:57:56 |