| 13 Nov 2023 |
Lily Foster | (ENOTCACHED should really be renamed to ENPMDIDABADTHINGAGAIN) | 16:59:28 |
@keiichi:matrix.org | sure, where is the best place to upload those files ? | 17:02:43 |
Lily Foster | i mean you could put them on a pastebin. or https://tmp.lily.flowers/ | 17:03:21 |
Lily Foster | In reply to @keiichi:matrix.org
I try to build a small package.json with buildNpmPackage. I seem to deterministically (repeatdly) hit:
> invalid type nullinvalid type nullnpm ERR! code ENOTCACHED
> npm ERR! request to https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz failed: cache mode is 'only-if-cached' but no cached response is available.
while nix-prefetch-url https://registry.npmjs.org/@pulumi/query/-/query-0.3.0.tgz works fine. what could explain this specific error ?
* Prefetching that URL has nothing to do with npm trying to do something it shouldn't in the nix sandbox. Can you share the full log and the package-lock.json file you are using? | 17:03:41 |
@keiichi:matrix.org | https://tmp.lily.flowers/package.json and the package-lock.json https://tmp.lily.flowers/wuhszr | 17:06:22 |
Lily Foster | can you share full build log? | 17:08:41 |
Lily Foster | i don't see anything wrong with this lockfile | 17:08:46 |
@keiichi:matrix.org | I build it with :
pulumiSdks = pkgs.buildNpmPackage {
pname = "ci-runner";
version = "1.0.0";
src = ./.;
npmDepsHash = "sha256-mUNksrt+S90RoXTofPSwhRAMw5wqrdjKtINkUA0KrQE=";
dontNpmBuild = true;
dontBuild = true;
};
and a nixpkgs of 8ac5c1191b06206f8508595f0c17332b851240f0
| 17:10:01 |
@keiichi:matrix.org | let me regenerate the log | 17:10:50 |
Lily Foster | i mean i've got it building on my end now | 17:13:18 |
Lily Foster | oh it's happening during prune...?? | 17:14:22 |
Lily Foster | what the hell | 17:14:26 |
Lily Foster | (why does npm prune logic always have to be so horribly busted) | 17:15:37 |
@keiichi:matrix.org | yes. I haven't tried dontNpmPrune = true yet, trying | 17:25:18 |
Lily Foster | apparently npm prunes deps but then decides that the node_modules/@pulumi/query (that already has been reified when deps were built) is insufficient and needs to be re-reified. which would be fine except it also decides that the cache is for losers and ignores or otherwise gets too spooked by the existing entry for query-0.3.0.tgz | 17:27:43 |
Lily Foster | whic | 17:28:00 |
Lily Foster | * which | 17:28:01 |
Lily Foster | makes no sense | 17:28:03 |
Lily Foster | npm is very eager to silently get spooked and redownload though so i'm ultimately not surprised | 17:28:21 |
Lily Foster | it would be nice to know whether it got spooked or didn't try the cache to begin with though (and even npm's debug logging does not log a lot of the situations where it gets spooked and bails for, unfortunately) | 17:28:54 |
@keiichi:matrix.org | dontNpmPrune "fixed" the build ty for help I hope this helps improving the understanding of npm xD | 17:30:03 |
Lily Foster | i'm trying to root out the bug now | 17:33:18 |
Lily Foster | in npm | 17:33:20 |
Lily Foster | which upstream will invariably ignore a PR for but oh well | 17:33:28 |
Lily Foster | okay so npm is actually just removing the cache value from npmrc? | 17:39:14 |
Lily Foster | what the hell? | 17:39:15 |
Lily Foster | oh we actually remove that | 17:39:50 |
Lily Foster | in the hook | 17:39:51 |
Lily Foster | the bugs are coming from inside the nixpkgs | 17:39:56 |
Lily Foster | okay | 17:39:57 |