diff --git a/README.md b/README.md
index 7b883cc..7048a5f 100644
--- a/README.md
+++ b/README.md
@@ -20,15 +20,15 @@ The app's `package.json` [here](./fixtures/react-app/package.json)
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| install | | | | 24.7s | 18.1s | 20.2s | 15.9s |
-| install | ✔ | ✔ | ✔ | 6.8s | 1.5s | 860ms | n/a |
-| install | ✔ | ✔ | | 16.1s | 6.9s | 5.6s | 1.8s |
-| install | ✔ | | | 22.9s | 11.4s | 10s | 6.2s |
-| install | | ✔ | | 20.1s | 16.7s | 14.3s | 10.7s |
-| install | ✔ | | ✔ | 7.4s | 2s | 8.2s | n/a |
-| install | | ✔ | ✔ | 7.3s | 1.4s | 834ms | n/a |
-| install | | | ✔ | 7.4s | 4.5s | 20.9s | n/a |
-| update | n/a | n/a | n/a | 7.6s | 16s | 22.9s | 16.1s |
+| install | | | | 23.4s | 22.9s | 17.1s | 22.1s |
+| install | ✔ | ✔ | ✔ | 6.6s | 1.4s | 641ms | 1.1s |
+| install | ✔ | ✔ | | 14.7s | 7.1s | 4.4s | 2.3s |
+| install | ✔ | | | 20.6s | 11.7s | 8.6s | 9.8s |
+| install | | ✔ | | 18s | 19.3s | 12.3s | 15s |
+| install | ✔ | | ✔ | 6.4s | 1.9s | 7.7s | 5.4s |
+| install | | ✔ | ✔ | 6.6s | 1.4s | 673ms | 14.2s |
+| install | | | ✔ | 6.5s | 4.5s | 18.2s | 17.1s |
+| update | n/a | n/a | n/a | 6.7s | 19.2s | 19.1s | 24.2s |

@@ -38,15 +38,15 @@ The app's `package.json` [here](./fixtures/ember-quickstart/package.json)
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| install | | | | 22s | 16.2s | 19.5s | 14.8s |
-| install | ✔ | ✔ | ✔ | 5.9s | 1.3s | 694ms | n/a |
-| install | ✔ | ✔ | | 12.2s | 5.8s | 4.9s | 1.7s |
-| install | ✔ | | | 16.9s | 9.6s | 10.4s | 7s |
-| install | | ✔ | | 14.9s | 15.3s | 12.7s | 10s |
-| install | ✔ | | ✔ | 5.8s | 1.4s | 8.5s | n/a |
-| install | | ✔ | ✔ | 6s | 1.3s | 686ms | n/a |
-| install | | | ✔ | 6.1s | 2.6s | 17.1s | n/a |
-| update | n/a | n/a | n/a | 6.1s | 14.2s | 19.9s | 12.2s |
+| install | | | | 20.3s | 19.4s | 18.9s | 33.6s |
+| install | ✔ | ✔ | ✔ | 5.3s | 1.2s | 501ms | 1.1s |
+| install | ✔ | ✔ | | 11s | 5.8s | 3.6s | 2.5s |
+| install | ✔ | | | 15.2s | 9.6s | 9s | 8.6s |
+| install | | ✔ | | 13.6s | 17s | 10.3s | 16.5s |
+| install | ✔ | | ✔ | 5.2s | 1.4s | 7.2s | 3.9s |
+| install | | ✔ | ✔ | 5.4s | 1.3s | 500ms | 14.9s |
+| install | | | ✔ | 5.3s | 2.4s | 17.3s | 17.5s |
+| update | n/a | n/a | n/a | 5.6s | 16.9s | 15.3s | 18.4s |

@@ -56,15 +56,15 @@ The app's `package.json` [here](./fixtures/angular-quickstart/package.json)
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| install | | | | 7.4s | 24.1s | 26.9s | 23.2s |
-| install | ✔ | ✔ | ✔ | 7.8s | 1.6s | 834ms | n/a |
-| install | ✔ | ✔ | | 21s | 8.6s | 7.5s | 1.9s |
-| install | ✔ | | | 24.9s | 13s | 14.1s | 7.8s |
-| install | | ✔ | | 21s | 21.5s | 20s | 15.2s |
-| install | ✔ | | ✔ | 7.1s | 3.6s | 9.8s | n/a |
-| install | | ✔ | ✔ | 7.3s | 1.5s | 750ms | n/a |
-| install | | | ✔ | 7.3s | 9.5s | 25.8s | n/a |
-| update | n/a | n/a | n/a | 7.4s | 16.8s | 20.4s | 13.3s |
+| install | | | | 12.2s | 29.3s | 22.8s | 1m 5.9s |
+| install | ✔ | ✔ | ✔ | 6.9s | 1.5s | 581ms | 1.7s |
+| install | ✔ | ✔ | | 18.3s | 8.9s | 5.8s | 3.1s |
+| install | ✔ | | | 22.1s | 13.5s | 13.1s | 11.1s |
+| install | | ✔ | | 19.3s | 24.6s | 16.3s | 34.4s |
+| install | ✔ | | ✔ | 6.3s | 3.3s | 8.6s | 6.2s |
+| install | | ✔ | ✔ | 6.6s | 1.5s | 535ms | 32.4s |
+| install | | | ✔ | 6.4s | 9.4s | 23.5s | 35.2s |
+| update | n/a | n/a | n/a | 6.6s | 20.1s | 17.5s | 42.5s |

@@ -74,15 +74,15 @@ The app's `package.json` [here](./fixtures/medium-size-app/package.json)
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| install | | | | 25.5s | 20s | 25.5s | 20.7s |
-| install | ✔ | ✔ | ✔ | 6.4s | 1.4s | 733ms | n/a |
-| install | ✔ | ✔ | | 14.5s | 6.9s | 6.2s | 1.8s |
-| install | ✔ | | | 20s | 10.9s | 15.3s | 10.5s |
-| install | | ✔ | | 18.4s | 18s | 16.1s | 12.3s |
-| install | ✔ | | ✔ | 6.5s | 2.7s | 12.9s | n/a |
-| install | | ✔ | ✔ | 6.7s | 1.3s | 702ms | n/a |
-| install | | | ✔ | 6.9s | 7s | 25.5s | n/a |
-| update | n/a | n/a | n/a | 6.7s | 13.7s | 24.3s | 20.6s |
+| install | | | | 23.7s | 23.5s | 22.8s | 49.5s |
+| install | ✔ | ✔ | ✔ | 5.8s | 1.6s | 490ms | 1.6s |
+| install | ✔ | ✔ | | 13.2s | 7.4s | 4.3s | 3.1s |
+| install | ✔ | | | 18.6s | 11.6s | 12.6s | 10.8s |
+| install | | ✔ | | 16.7s | 19.9s | 13.3s | 26.7s |
+| install | ✔ | | ✔ | 5.8s | 2.4s | 9.7s | 5.1s |
+| install | | ✔ | ✔ | 6.1s | 1.3s | 486ms | 23.8s |
+| install | | | ✔ | 6.1s | 7.1s | 21.5s | 29.6s |
+| update | n/a | n/a | n/a | 6.1s | 16.3s | 15.2s | 32.3s |

@@ -92,14 +92,14 @@ The app's `package.json` [here](./fixtures/alotta-files/package.json)
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
-| install | | | | 6.6s | 22.4s | 35s | 42.7s |
-| install | ✔ | ✔ | ✔ | 7.4s | 1.6s | 810ms | n/a |
-| install | ✔ | ✔ | | 21.8s | 7.5s | 10.7s | 2.1s |
-| install | ✔ | | | 33s | 12.3s | 22.2s | 18.2s |
-| install | | ✔ | | 22.3s | 18.4s | 22.2s | 13s |
-| install | ✔ | | ✔ | 7s | 3.5s | 15.6s | n/a |
-| install | | ✔ | ✔ | 6.8s | 1.5s | 787ms | n/a |
-| install | | | ✔ | 6.5s | 7.5s | 32.2s | n/a |
-| update | n/a | n/a | n/a | 6.8s | 16.9s | 34.1s | 25s |
+| install | | | | 13.5s | 26.4s | 37.5s | 42s |
+| install | ✔ | ✔ | ✔ | 6.6s | 1.5s | 558ms | 1.4s |
+| install | ✔ | ✔ | | 19s | 7.6s | 7.4s | 3s |
+| install | ✔ | | | 28.2s | 12.7s | 17.8s | 10.6s |
+| install | | ✔ | | 20.2s | 21s | 16.5s | 22.2s |
+| install | ✔ | | ✔ | 6.1s | 3.3s | 13.3s | 5.4s |
+| install | | ✔ | ✔ | 6.2s | 1.5s | 511ms | 19.6s |
+| install | | | ✔ | 5.7s | 7.4s | 28.3s | 22.9s |
+| update | n/a | n/a | n/a | 6.2s | 19.5s | 25.8s | 50.9s |

\ No newline at end of file
diff --git a/index.js b/index.js
index 0822394..f2f7f4c 100644
--- a/index.js
+++ b/index.js
@@ -123,13 +123,13 @@ async function run () {
| action | cache | lockfile | node_modules| npm | pnpm | Yarn | Yarn PnP |
| --- | --- | --- | --- | --- | --- | --- | --- |
| install | | | | ${prettyMs(npmRes.firstInstall)} | ${prettyMs(pnpmRes.firstInstall)} | ${prettyMs(yarnRes.firstInstall)} | ${prettyMs(yarnPnPRes.firstInstall)} |
- | install | ✔ | ✔ | ✔ | ${prettyMs(npmRes.repeatInstall)} | ${prettyMs(pnpmRes.repeatInstall)} | ${prettyMs(yarnRes.repeatInstall)} | n/a |
+ | install | ✔ | ✔ | ✔ | ${prettyMs(npmRes.repeatInstall)} | ${prettyMs(pnpmRes.repeatInstall)} | ${prettyMs(yarnRes.repeatInstall)} | ${prettyMs(yarnPnPRes.repeatInstall)} |
| install | ✔ | ✔ | | ${prettyMs(npmRes.withWarmCacheAndLockfile)} | ${prettyMs(pnpmRes.withWarmCacheAndLockfile)} | ${prettyMs(yarnRes.withWarmCacheAndLockfile)} | ${prettyMs(yarnPnPRes.withWarmCacheAndLockfile)} |
| install | ✔ | | | ${prettyMs(npmRes.withWarmCache)} | ${prettyMs(pnpmRes.withWarmCache)} | ${prettyMs(yarnRes.withWarmCache)} | ${prettyMs(yarnPnPRes.withWarmCache)} |
| install | | ✔ | | ${prettyMs(npmRes.withLockfile)} | ${prettyMs(pnpmRes.withLockfile)} | ${prettyMs(yarnRes.withLockfile)} | ${prettyMs(yarnPnPRes.withLockfile)} |
- | install | ✔ | | ✔ | ${prettyMs(npmRes.withWarmCacheAndModules)} | ${prettyMs(pnpmRes.withWarmCacheAndModules)} | ${prettyMs(yarnRes.withWarmCacheAndModules)} | n/a |
- | install | | ✔ | ✔ | ${prettyMs(npmRes.withWarmModulesAndLockfile)} | ${prettyMs(pnpmRes.withWarmModulesAndLockfile)} | ${prettyMs(yarnRes.withWarmModulesAndLockfile)} | n/a |
- | install | | | ✔ | ${prettyMs(npmRes.withWarmModules)} | ${prettyMs(pnpmRes.withWarmModules)} | ${prettyMs(yarnRes.withWarmModules)} | n/a |
+ | install | ✔ | | ✔ | ${prettyMs(npmRes.withWarmCacheAndModules)} | ${prettyMs(pnpmRes.withWarmCacheAndModules)} | ${prettyMs(yarnRes.withWarmCacheAndModules)} | ${prettyMs(yarnPnPRes.withWarmCacheAndModules)} |
+ | install | | ✔ | ✔ | ${prettyMs(npmRes.withWarmModulesAndLockfile)} | ${prettyMs(pnpmRes.withWarmModulesAndLockfile)} | ${prettyMs(yarnRes.withWarmModulesAndLockfile)} | ${prettyMs(yarnPnPRes.withWarmModulesAndLockfile)} |
+ | install | | | ✔ | ${prettyMs(npmRes.withWarmModules)} | ${prettyMs(pnpmRes.withWarmModules)} | ${prettyMs(yarnRes.withWarmModules)} | ${prettyMs(yarnPnPRes.withWarmModules)} |
| update | n/a | n/a | n/a | ${prettyMs(npmRes.updatedDependencies)} | ${prettyMs(pnpmRes.updatedDependencies)} | ${prettyMs(yarnRes.updatedDependencies)} | ${prettyMs(yarnPnPRes.updatedDependencies)} |

diff --git a/lib/benchmarkFixture.js b/lib/benchmarkFixture.js
index 4c1ee70..8aceced 100644
--- a/lib/benchmarkFixture.js
+++ b/lib/benchmarkFixture.js
@@ -8,10 +8,11 @@ const readFile = thenify(require('fs').readFile)
const writeFile = thenify(require('fs').writeFile)
const getFolderSize = thenify(require('get-folder-size'))
const rimraf = require('rimraf').sync
+const tmpdir = require('os').tmpdir
const BASEDIR = path.join(__dirname, '..')
const FIXTURES_DIR = path.join(BASEDIR, 'fixtures')
-const TMP = path.join(BASEDIR, '.tmp')
+const TMP = path.join(tmpdir(), 'pm-bench')
const lockfileNameByPM = {
npm: 'package-lock.json',
@@ -57,7 +58,11 @@ async function updateDependenciesInPackageJson (cwd) {
module.exports = async function benchmark (pm, fixture, opts) {
const cwd = path.join(TMP, pm.scenario, fixture)
await copy(path.join(FIXTURES_DIR, fixture), cwd)
- const modules = opts.hasNodeModules ? path.join(cwd, 'node_modules') : null
+ const modules = opts.hasNodeModules ? path.join(cwd, 'node_modules') : path.join(cwd, '.pnp.js')
+
+ console.log(`# preparing ${cwd}`)
+
+ await setupPm(pm, cwd)
console.log(`# first install`)
@@ -154,11 +159,21 @@ module.exports = async function benchmark (pm, fixture, opts) {
}
}
+function setupPm (cmd, cwd) {
+ for (const line of cmd.setup || []) {
+ console.log(`> ${line}`)
+ const result = child.spawnSync(line, {env, cwd, shell: true, stdio: 'inherit'})
+ if (result.status !== 0) {
+ throw new Error(`${cmd.name} failed with status code ${result.status}`)
+ }
+ }
+}
+
function measureInstall (cmd, cwd) {
const startTime = Date.now()
console.log(`> ${cmd.name} ${cmd.args.join(' ')}`)
- const result = child.spawnSync(cmd.name, cmd.args, {env, cwd, stdio: 'inherit'})
+ const result = child.spawnSync(cmd.name, cmd.args, {env: {...env, ...cmd.env}, cwd, stdio: 'inherit'})
if (result.status !== 0) {
throw new Error(`${cmd.name} failed with status code ${result.status}`)
}
diff --git a/lib/commandsMap.js b/lib/commandsMap.js
index 98121e2..f144ca7 100644
--- a/lib/commandsMap.js
+++ b/lib/commandsMap.js
@@ -41,13 +41,18 @@ module.exports = {
},
yarn_pnp: {
scenario: 'yarn_pnp',
- legend: "Yarn PnP",
+ legend: "Yarn 2",
name: 'yarn',
+ setup: [
+ 'touch yarn.lock',
+ 'yarn set version berry',
+ ],
+ env: {
+ YARN_CACHE_FOLDER: 'cache/cache',
+ YARN_GLOBAL_FOLDER: 'cache/global',
+ YARN_ENABLE_SCRIPTS: '0'
+ },
args: [
- '--pnp',
- '--ignore-scripts',
- '--cache-folder',
- 'cache'
]
}
}
diff --git a/package.json b/package.json
index 24e7da3..d8841f7 100644
--- a/package.json
+++ b/package.json
@@ -34,7 +34,7 @@
"rimraf": "^2.5.4",
"thenify": "^3.2.1",
"write-yaml-file": "^1.0.0",
- "yarn": "^1.21.1"
+ "yarn": "^1.22.0"
},
"devDependencies": {
"standard": "^10.0.2"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 001aad9..27d68d8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,7 +13,7 @@ dependencies:
rimraf: 2.7.1
thenify: 3.3.0
write-yaml-file: 1.0.1
- yarn: 1.21.1
+ yarn: 1.22.0
devDependencies:
standard: 10.0.3
lockfileVersion: 5.1
@@ -1715,13 +1715,13 @@ packages:
dev: false
resolution:
integrity: sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
- /yarn/1.21.1:
+ /yarn/1.22.0:
dev: false
engines:
node: '>=4.0.0'
hasBin: true
resolution:
- integrity: sha512-dQgmJv676X/NQczpbiDtc2hsE/pppGDJAzwlRiADMTvFzYbdxPj2WO4PcNyriSt2c4jsCMpt8UFRKHUozt21GQ==
+ integrity: sha512-KMHP/Jq53jZKTY9iTUt3dIVl/be6UPs2INo96+BnZHLKxYNTfwMmlgHTaMWyGZoO74RI4AIFvnWhYrXq2USJkg==
specifiers:
common-tags: ^1.3.1
cross-spawn: ^5.0.1
@@ -1738,4 +1738,4 @@ specifiers:
standard: ^10.0.2
thenify: ^3.2.1
write-yaml-file: ^1.0.0
- yarn: ^1.21.1
+ yarn: ^1.22.0
diff --git a/results/imgs/alotta-files.svg b/results/imgs/alotta-files.svg
index 3a3b34a..0b857d9 100644
--- a/results/imgs/alotta-files.svg
+++ b/results/imgs/alotta-files.svg
@@ -16,64 +16,64 @@
v4.7.1
Yarn
- v1.21.1
+ v1.22.0
- Yarn PnP
- v1.21.1
+ Yarn 2
+ v1.22.0
0
0
- 9
- 9
+ 11
+ 11
- 18
- 18
+ 22
+ 22
- 27
- 27
-
- 36
- 36
+ 33
+ 33
+
+ 44
+ 44
- 45
- 45
+ 55
+ 55
Installation time in seconds (lower is better)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
clean install
with cache
@@ -89,5 +89,5 @@
with lockfile
with node_modules
update
- Tests were run using Node.js v12.11.0
+ Tests were run using Node.js v12.7.0
diff --git a/results/imgs/angular-quickstart.svg b/results/imgs/angular-quickstart.svg
index 1b14939..2d57cea 100644
--- a/results/imgs/angular-quickstart.svg
+++ b/results/imgs/angular-quickstart.svg
@@ -16,64 +16,64 @@
v4.7.1
Yarn
- v1.21.1
+ v1.22.0
- Yarn PnP
- v1.21.1
+ Yarn 2
+ v1.22.0
0
0
- 6
- 6
+ 14
+ 14
- 12
- 12
+ 28
+ 28
- 18
- 18
-
- 24
- 24
+ 42
+ 42
+
+ 56
+ 56
- 30
- 30
+ 70
+ 70
Installation time in seconds (lower is better)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
clean install
with cache
@@ -89,5 +89,5 @@
with lockfile
with node_modules
update
- Tests were run using Node.js v12.11.0
+ Tests were run using Node.js v12.7.0
diff --git a/results/imgs/ember-quickstart.svg b/results/imgs/ember-quickstart.svg
index 0335773..6342052 100644
--- a/results/imgs/ember-quickstart.svg
+++ b/results/imgs/ember-quickstart.svg
@@ -16,64 +16,64 @@
v4.7.1
Yarn
- v1.21.1
+ v1.22.0
- Yarn PnP
- v1.21.1
+ Yarn 2
+ v1.22.0
0
0
- 5
- 5
+ 7
+ 7
- 10
- 10
+ 14
+ 14
- 15
- 15
+ 21
+ 21
- 20
- 20
+ 28
+ 28
- 25
- 25
+ 35
+ 35
Installation time in seconds (lower is better)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
clean install
with cache
@@ -89,5 +89,5 @@
with lockfile
with node_modules
update
- Tests were run using Node.js v12.11.0
+ Tests were run using Node.js v12.7.0
diff --git a/results/imgs/medium-size-app.svg b/results/imgs/medium-size-app.svg
index 21298a7..f2598cf 100644
--- a/results/imgs/medium-size-app.svg
+++ b/results/imgs/medium-size-app.svg
@@ -16,64 +16,64 @@
v4.7.1
Yarn
- v1.21.1
+ v1.22.0
- Yarn PnP
- v1.21.1
+ Yarn 2
+ v1.22.0
0
0
- 6
- 6
+ 10
+ 10
- 12
- 12
+ 20
+ 20
- 18
- 18
-
- 24
- 24
+ 30
+ 30
+
+ 40
+ 40
- 30
- 30
+ 50
+ 50
Installation time in seconds (lower is better)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
clean install
with cache
@@ -89,5 +89,5 @@
with lockfile
with node_modules
update
- Tests were run using Node.js v12.11.0
+ Tests were run using Node.js v12.7.0
diff --git a/results/imgs/react-app.svg b/results/imgs/react-app.svg
index 4ce0231..f578288 100644
--- a/results/imgs/react-app.svg
+++ b/results/imgs/react-app.svg
@@ -16,10 +16,10 @@
v4.7.1
Yarn
- v1.21.1
+ v1.22.0
- Yarn PnP
- v1.21.1
+ Yarn 2
+ v1.22.0
0
0
@@ -38,42 +38,42 @@
25
25
Installation time in seconds (lower is better)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
clean install
with cache
@@ -89,5 +89,5 @@
with lockfile
with node_modules
update
- Tests were run using Node.js v12.11.0
+ Tests were run using Node.js v12.7.0
diff --git a/results/npm/6.13.6/alotta-files.yaml b/results/npm/6.13.6/alotta-files.yaml
index 1af36de..14e3ff0 100644
--- a/results/npm/6.13.6/alotta-files.yaml
+++ b/results/npm/6.13.6/alotta-files.yaml
@@ -18,3 +18,13 @@
withWarmModules: 6192
updatedDependencies: 6614
size: 239983516
+- firstInstall: 27261
+ repeatInstall: 5178
+ withWarmCacheAndLockfile: 13241
+ withWarmCache: 18763
+ withLockfile: 15895
+ withWarmCacheAndModules: 4325
+ withWarmModulesAndLockfile: 5064
+ withWarmModules: 4246
+ updatedDependencies: 4912
+ size: 224415603
diff --git a/results/npm/6.13.6/angular-quickstart.yaml b/results/npm/6.13.6/angular-quickstart.yaml
index dec39f2..0749ce8 100644
--- a/results/npm/6.13.6/angular-quickstart.yaml
+++ b/results/npm/6.13.6/angular-quickstart.yaml
@@ -18,3 +18,13 @@
withWarmModules: 7032
updatedDependencies: 7501
size: 302050633
+- firstInstall: 21647
+ repeatInstall: 5035
+ withWarmCacheAndLockfile: 12883
+ withWarmCache: 16645
+ withLockfile: 15691
+ withWarmCacheAndModules: 4515
+ withWarmModulesAndLockfile: 5079
+ withWarmModules: 4606
+ updatedDependencies: 4925
+ size: 288222654
diff --git a/results/npm/6.13.6/ember-quickstart.yaml b/results/npm/6.13.6/ember-quickstart.yaml
index 029fbdb..e7c95b0 100644
--- a/results/npm/6.13.6/ember-quickstart.yaml
+++ b/results/npm/6.13.6/ember-quickstart.yaml
@@ -18,3 +18,13 @@
withWarmModules: 6321
updatedDependencies: 6286
size: 118126328
+- firstInstall: 16815
+ repeatInstall: 4000
+ withWarmCacheAndLockfile: 8684
+ withWarmCache: 11793
+ withLockfile: 11035
+ withWarmCacheAndModules: 3963
+ withWarmModulesAndLockfile: 4239
+ withWarmModules: 3690
+ updatedDependencies: 4667
+ size: 108321014
diff --git a/results/npm/6.13.6/medium-size-app.yaml b/results/npm/6.13.6/medium-size-app.yaml
index 0c5f927..4930019 100644
--- a/results/npm/6.13.6/medium-size-app.yaml
+++ b/results/npm/6.13.6/medium-size-app.yaml
@@ -18,3 +18,13 @@
withWarmModules: 6843
updatedDependencies: 6461
size: 196942081
+- firstInstall: 20151
+ repeatInstall: 4555
+ withWarmCacheAndLockfile: 10635
+ withWarmCache: 15607
+ withLockfile: 13170
+ withWarmCacheAndModules: 4341
+ withWarmModulesAndLockfile: 4854
+ withWarmModules: 4509
+ updatedDependencies: 4904
+ size: 186890660
diff --git a/results/npm/6.13.6/react-app.yaml b/results/npm/6.13.6/react-app.yaml
index a778536..688dc52 100644
--- a/results/npm/6.13.6/react-app.yaml
+++ b/results/npm/6.13.6/react-app.yaml
@@ -18,3 +18,13 @@
withWarmModules: 7459
updatedDependencies: 7957
size: 143088600
+- firstInstall: 20887
+ repeatInstall: 6184
+ withWarmCacheAndLockfile: 11893
+ withWarmCache: 16033
+ withLockfile: 13916
+ withWarmCacheAndModules: 4532
+ withWarmModulesAndLockfile: 5250
+ withWarmModules: 4630
+ updatedDependencies: 4929
+ size: 132845584
diff --git a/results/pnpm/4.7.1/alotta-files.yaml b/results/pnpm/4.7.1/alotta-files.yaml
index 2823bc9..09fb8e3 100644
--- a/results/pnpm/4.7.1/alotta-files.yaml
+++ b/results/pnpm/4.7.1/alotta-files.yaml
@@ -18,3 +18,13 @@
withWarmModules: 7706
updatedDependencies: 16770
size: 200845810
+- firstInstall: 34494
+ repeatInstall: 1227
+ withWarmCacheAndLockfile: 7766
+ withWarmCache: 13491
+ withLockfile: 26145
+ withWarmCacheAndModules: 2769
+ withWarmModulesAndLockfile: 1416
+ withWarmModules: 7156
+ updatedDependencies: 24835
+ size: 174342646
diff --git a/results/pnpm/4.7.1/angular-quickstart.yaml b/results/pnpm/4.7.1/angular-quickstart.yaml
index fdb4330..22567d4 100644
--- a/results/pnpm/4.7.1/angular-quickstart.yaml
+++ b/results/pnpm/4.7.1/angular-quickstart.yaml
@@ -18,3 +18,13 @@
withWarmModules: 9913
updatedDependencies: 17207
size: 259498266
+- firstInstall: 39639
+ repeatInstall: 1152
+ withWarmCacheAndLockfile: 9388
+ withWarmCache: 14399
+ withLockfile: 30615
+ withWarmCacheAndModules: 2575
+ withWarmModulesAndLockfile: 1509
+ withWarmModules: 9255
+ updatedDependencies: 26711
+ size: 232807031
diff --git a/results/pnpm/4.7.1/ember-quickstart.yaml b/results/pnpm/4.7.1/ember-quickstart.yaml
index 7f9f48a..32d5e23 100644
--- a/results/pnpm/4.7.1/ember-quickstart.yaml
+++ b/results/pnpm/4.7.1/ember-quickstart.yaml
@@ -18,3 +18,13 @@
withWarmModules: 2589
updatedDependencies: 13998
size: 123768784
+- firstInstall: 25675
+ repeatInstall: 1062
+ withWarmCacheAndLockfile: 5789
+ withWarmCache: 9666
+ withLockfile: 20586
+ withWarmCacheAndModules: 1457
+ withWarmModulesAndLockfile: 1251
+ withWarmModules: 2214
+ updatedDependencies: 22276
+ size: 101616447
diff --git a/results/pnpm/4.7.1/medium-size-app.yaml b/results/pnpm/4.7.1/medium-size-app.yaml
index 5de312b..ef6a9f2 100644
--- a/results/pnpm/4.7.1/medium-size-app.yaml
+++ b/results/pnpm/4.7.1/medium-size-app.yaml
@@ -18,3 +18,13 @@
withWarmModules: 6995
updatedDependencies: 13429
size: 200185189
+- firstInstall: 30507
+ repeatInstall: 1857
+ withWarmCacheAndLockfile: 8493
+ withWarmCache: 12883
+ withLockfile: 23603
+ withWarmCacheAndModules: 2028
+ withWarmModulesAndLockfile: 1274
+ withWarmModules: 7229
+ updatedDependencies: 21387
+ size: 177631444
diff --git a/results/pnpm/4.7.1/react-app.yaml b/results/pnpm/4.7.1/react-app.yaml
index 860165e..f7a60c7 100644
--- a/results/pnpm/4.7.1/react-app.yaml
+++ b/results/pnpm/4.7.1/react-app.yaml
@@ -18,3 +18,13 @@
withWarmModules: 4520
updatedDependencies: 16243
size: 111240858
+- firstInstall: 32500
+ repeatInstall: 1192
+ withWarmCacheAndLockfile: 7656
+ withWarmCache: 12304
+ withLockfile: 24635
+ withWarmCacheAndModules: 1608
+ withWarmModulesAndLockfile: 1328
+ withWarmModules: 4564
+ updatedDependencies: 25726
+ size: 86676504
diff --git a/results/yarn/1.22.0/alotta-files.yaml b/results/yarn/1.22.0/alotta-files.yaml
new file mode 100644
index 0000000..25c07cf
--- /dev/null
+++ b/results/yarn/1.22.0/alotta-files.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 28275
+ repeatInstall: 589
+ withWarmCacheAndLockfile: 7482
+ withWarmCache: 18332
+ withLockfile: 16785
+ withWarmCacheAndModules: 13741
+ withWarmModulesAndLockfile: 535
+ withWarmModules: 28680
+ updatedDependencies: 27673
+ size: 211230757
+- firstInstall: 46800
+ repeatInstall: 526
+ withWarmCacheAndLockfile: 7398
+ withWarmCache: 17229
+ withLockfile: 16310
+ withWarmCacheAndModules: 12849
+ withWarmModulesAndLockfile: 486
+ withWarmModules: 27880
+ updatedDependencies: 23920
+ size: 211230757
diff --git a/results/yarn/1.22.0/angular-quickstart.yaml b/results/yarn/1.22.0/angular-quickstart.yaml
new file mode 100644
index 0000000..423d7aa
--- /dev/null
+++ b/results/yarn/1.22.0/angular-quickstart.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 23987
+ repeatInstall: 585
+ withWarmCacheAndLockfile: 5900
+ withWarmCache: 13159
+ withLockfile: 16404
+ withWarmCacheAndModules: 8657
+ withWarmModulesAndLockfile: 526
+ withWarmModules: 23749
+ updatedDependencies: 17757
+ size: 278450491
+- firstInstall: 21676
+ repeatInstall: 576
+ withWarmCacheAndLockfile: 5774
+ withWarmCache: 13107
+ withLockfile: 16193
+ withWarmCacheAndModules: 8528
+ withWarmModulesAndLockfile: 544
+ withWarmModules: 23283
+ updatedDependencies: 17265
+ size: 278481877
diff --git a/results/yarn/1.22.0/ember-quickstart.yaml b/results/yarn/1.22.0/ember-quickstart.yaml
new file mode 100644
index 0000000..5e8b3d3
--- /dev/null
+++ b/results/yarn/1.22.0/ember-quickstart.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 16651
+ repeatInstall: 502
+ withWarmCacheAndLockfile: 3623
+ withWarmCache: 9525
+ withLockfile: 10358
+ withWarmCacheAndModules: 7035
+ withWarmModulesAndLockfile: 505
+ withWarmModules: 18830
+ updatedDependencies: 14629
+ size: 108289512
+- firstInstall: 21081
+ repeatInstall: 500
+ withWarmCacheAndLockfile: 3493
+ withWarmCache: 8574
+ withLockfile: 10159
+ withWarmCacheAndModules: 7319
+ withWarmModulesAndLockfile: 494
+ withWarmModules: 15851
+ updatedDependencies: 15880
+ size: 108289962
diff --git a/results/yarn/1.22.0/medium-size-app.yaml b/results/yarn/1.22.0/medium-size-app.yaml
new file mode 100644
index 0000000..f9fc55b
--- /dev/null
+++ b/results/yarn/1.22.0/medium-size-app.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 20784
+ repeatInstall: 511
+ withWarmCacheAndLockfile: 4412
+ withWarmCache: 11774
+ withLockfile: 13629
+ withWarmCacheAndModules: 9845
+ withWarmModulesAndLockfile: 495
+ withWarmModules: 20906
+ updatedDependencies: 14442
+ size: 193010843
+- firstInstall: 24864
+ repeatInstall: 469
+ withWarmCacheAndLockfile: 4286
+ withWarmCache: 13485
+ withLockfile: 12887
+ withWarmCacheAndModules: 9565
+ withWarmModulesAndLockfile: 476
+ withWarmModules: 22114
+ updatedDependencies: 15987
+ size: 193010843
diff --git a/results/yarn/1.22.0/react-app.yaml b/results/yarn/1.22.0/react-app.yaml
new file mode 100644
index 0000000..74328f7
--- /dev/null
+++ b/results/yarn/1.22.0/react-app.yaml
@@ -0,0 +1,30 @@
+- firstInstall: 16568
+ repeatInstall: 596
+ withWarmCacheAndLockfile: 4274
+ withWarmCache: 8295
+ withLockfile: 12494
+ withWarmCacheAndModules: 6852
+ withWarmModulesAndLockfile: 626
+ withWarmModules: 20070
+ updatedDependencies: 22710
+ size: 104867339
+- firstInstall: 17558
+ repeatInstall: 678
+ withWarmCacheAndLockfile: 4142
+ withWarmCache: 8595
+ withLockfile: 12414
+ withWarmCacheAndModules: 7000
+ withWarmModulesAndLockfile: 798
+ withWarmModules: 17572
+ updatedDependencies: 18022
+ size: 104867339
+- firstInstall: 17073
+ repeatInstall: 649
+ withWarmCacheAndLockfile: 4684
+ withWarmCache: 9036
+ withLockfile: 11977
+ withWarmCacheAndModules: 9368
+ withWarmModulesAndLockfile: 595
+ withWarmModules: 17042
+ updatedDependencies: 16578
+ size: 104867339
diff --git a/results/yarn_pnp/1.22.0/alotta-files.yaml b/results/yarn_pnp/1.22.0/alotta-files.yaml
new file mode 100644
index 0000000..6ef7314
--- /dev/null
+++ b/results/yarn_pnp/1.22.0/alotta-files.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 33696
+ repeatInstall: 0
+ withWarmCacheAndLockfile: 3285
+ withWarmCache: 10726
+ withLockfile: 5255
+ withWarmCacheAndModules: 0
+ withWarmModulesAndLockfile: 0
+ withWarmModules: 0
+ updatedDependencies: 49467
+ size: 42195263
+- firstInstall: 50262
+ repeatInstall: 2760
+ withWarmCacheAndLockfile: 2770
+ withWarmCache: 10435
+ withLockfile: 39224
+ withWarmCacheAndModules: 10776
+ withWarmModulesAndLockfile: 39205
+ withWarmModules: 45731
+ updatedDependencies: 52416
+ size: 1114204
diff --git a/results/yarn_pnp/1.22.0/angular-quickstart.yaml b/results/yarn_pnp/1.22.0/angular-quickstart.yaml
new file mode 100644
index 0000000..cf2c6b9
--- /dev/null
+++ b/results/yarn_pnp/1.22.0/angular-quickstart.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 57739
+ repeatInstall: 0
+ withWarmCacheAndLockfile: 2636
+ withWarmCache: 11300
+ withLockfile: 3947
+ withWarmCacheAndModules: 0
+ withWarmModulesAndLockfile: 0
+ withWarmModules: 0
+ updatedDependencies: 28019
+ size: 72664020
+- firstInstall: 74145
+ repeatInstall: 3439
+ withWarmCacheAndLockfile: 3602
+ withWarmCache: 10854
+ withLockfile: 64843
+ withWarmCacheAndModules: 12305
+ withWarmModulesAndLockfile: 64847
+ withWarmModules: 70460
+ updatedDependencies: 56970
+ size: 1072482
diff --git a/results/yarn_pnp/1.22.0/ember-quickstart.yaml b/results/yarn_pnp/1.22.0/ember-quickstart.yaml
new file mode 100644
index 0000000..c16650b
--- /dev/null
+++ b/results/yarn_pnp/1.22.0/ember-quickstart.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 28311
+ repeatInstall: 0
+ withWarmCacheAndLockfile: 2811
+ withWarmCache: 9247
+ withLockfile: 4350
+ withWarmCacheAndModules: 0
+ withWarmModulesAndLockfile: 0
+ withWarmModules: 0
+ updatedDependencies: 16839
+ size: 31317345
+- firstInstall: 38878
+ repeatInstall: 2171
+ withWarmCacheAndLockfile: 2142
+ withWarmCache: 7911
+ withLockfile: 28600
+ withWarmCacheAndModules: 7821
+ withWarmModulesAndLockfile: 29773
+ withWarmModules: 34931
+ updatedDependencies: 19879
+ size: 1002322
diff --git a/results/yarn_pnp/1.22.0/medium-size-app.yaml b/results/yarn_pnp/1.22.0/medium-size-app.yaml
new file mode 100644
index 0000000..7460f28
--- /dev/null
+++ b/results/yarn_pnp/1.22.0/medium-size-app.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 42347
+ repeatInstall: 0
+ withWarmCacheAndLockfile: 3165
+ withWarmCache: 11651
+ withLockfile: 4711
+ withWarmCacheAndModules: 0
+ withWarmModulesAndLockfile: 0
+ withWarmModules: 0
+ updatedDependencies: 16020
+ size: 52750346
+- firstInstall: 56733
+ repeatInstall: 3137
+ withWarmCacheAndLockfile: 3026
+ withWarmCache: 9957
+ withLockfile: 48595
+ withWarmCacheAndModules: 10186
+ withWarmModulesAndLockfile: 47503
+ withWarmModules: 59111
+ updatedDependencies: 48524
+ size: 1030486
diff --git a/results/yarn_pnp/1.22.0/react-app.yaml b/results/yarn_pnp/1.22.0/react-app.yaml
new file mode 100644
index 0000000..9b4e8b5
--- /dev/null
+++ b/results/yarn_pnp/1.22.0/react-app.yaml
@@ -0,0 +1,20 @@
+- firstInstall: 10774
+ repeatInstall: 0
+ withWarmCacheAndLockfile: 2331
+ withWarmCache: 9579
+ withLockfile: 3419
+ withWarmCacheAndModules: 0
+ withWarmModulesAndLockfile: 0
+ withWarmModules: 0
+ updatedDependencies: 21988
+ size: 29060059
+- firstInstall: 33455
+ repeatInstall: 2249
+ withWarmCacheAndLockfile: 2201
+ withWarmCache: 9957
+ withLockfile: 26587
+ withWarmCacheAndModules: 10890
+ withWarmModulesAndLockfile: 28356
+ withWarmModules: 34126
+ updatedDependencies: 26472
+ size: 1076715