When pushing https://gerrit.wikimedia.org/r/c/integration/config/+/1338086 I could see that we still have many files that gets copied to Castor every time in CI.
It looks like the problem comes from that Core's package-lock.json has 1962 entries and 1145 of them have no resolved and no integrity field. All are dev dependencies. That seems to have come from the change https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1276810
I think without those fields the npm cache can not be used directly. In CI this means every Quibble job that installs core's npm dependencies, which includes all the standard core and extension gate jobs, rewrites about 2,500 npm cache files per build, and castor copies all of them to Castor on each save.
I think the easiest way is to remove the lock file and node_modules and run npm install inside of node fresh. Or @Mhurd
what do you think?
I also tried to recreate how this could have happened I think this happens if you remove the lock file but keep node_modules and run a new install.
We also should check all gated extensions and verify that those lock files look ok.
package-lock.json that lack the resolved and integrity fields can be updated using:
npx --package=package-lock-fix -- package-lock-fix package-lock.json
Then reindenting the file from 2 spaces to tabulations.
