Loading workspace insights... Statistics interval
7 days30 daysLatest CI Pipeline Executions
a0805750 ci: trim fixed overhead from the sandbox create flow
Four independent trims, measured on a timestamped local reproduction of
angular-vite sandbox creation (107s -> 56s) and a phase decomposition of
the CI create jobs (83-106s 'Create Sandbox' step):
- Yarn setup becomes two file writes. installYarn2 ran 'yarn set version
berry' plus chained 'yarn config set' calls: ~12 yarn boots and two
network downloads (corepack's bootstrap yarn, then the latest Berry) per
sandbox. The sandbox now vendors the repository's own pinned yarn release
via yarnPath and writes .yarnrc.yml directly. packageManager is pinned in
the sandbox package.json to the same version: without the field, corepack
auto-pins its classic bootstrap yarn, and JsPackageManagerFactory would
read that field and misclassify the sandbox as Yarn 1 (caught by the
local reproduction; installs kept working through yarnPath delegation
while the CLI ran classic-syntax commands).
- The final 'yarn install' no longer wipes node_modules first. The wipe
forced a full re-extraction of the tree (~10-25s on CI) that yarn's
incremental install makes redundant.
- Extra sandbox deps carry explicit version ranges, so addExtraDependencies
does not probe the registry (a subprocess each) to resolve 'latest' for
packages whose major we already know - and sandbox contents stop drifting
when a new major is published.
- The executor images move to cimg/node:22.22.3, matching .nvmrc. That
satisfies Angular's minimum Node version, so the per-job 'node/install'
step (~9s on every angular create/dev job) is gone; the create jobs also
pre-warm the npx cache for the pinned gitpick version the CLI spawns, so
the template download does not pay a cold npx install.
Rejected while implementing: passing skip-install to the init CLI step
(would fold init's install into the final one, ~15-25s) silently no-ops
all addon configuration, because postinstallAddon resolves each addon's
postinstall hook from the sandbox's node_modules and returns quietly when
resolution fails - addon-vitest's setup would disappear from sandboxes. 7631bf77 ci: trim fixed overhead from the sandbox create flow
Four independent trims, measured on a timestamped local reproduction of
angular-vite sandbox creation (107s -> 56s) and a phase decomposition of
the CI create jobs (83-106s 'Create Sandbox' step):
- Yarn setup becomes two file writes. installYarn2 ran 'yarn set version
berry' plus chained 'yarn config set' calls: ~12 yarn boots and two
network downloads (corepack's bootstrap yarn, then the latest Berry) per
sandbox. The sandbox now vendors the repository's own pinned yarn release
via yarnPath and writes .yarnrc.yml directly. packageManager is pinned in
the sandbox package.json to the same version: without the field, corepack
auto-pins its classic bootstrap yarn, and JsPackageManagerFactory would
read that field and misclassify the sandbox as Yarn 1 (caught by the
local reproduction; installs kept working through yarnPath delegation
while the CLI ran classic-syntax commands).
- The final 'yarn install' no longer wipes node_modules first. The wipe
forced a full re-extraction of the tree (~10-25s on CI) that yarn's
incremental install makes redundant.
- Extra sandbox deps carry explicit version ranges, so addExtraDependencies
does not probe the registry (a subprocess each) to resolve 'latest' for
packages whose major we already know - and sandbox contents stop drifting
when a new major is published.
- The executor images move to cimg/node:22.22.3, matching .nvmrc. That
satisfies Angular's minimum Node version, so the per-job 'node/install'
step (~9s on every angular create/dev job) is gone; the create jobs also
pre-warm the npx cache for the pinned gitpick version the CLI spawns, so
the template download does not pay a cold npx install.
Rejected while implementing: passing skip-install to the init CLI step
(would fold init's install into the final one, ~15-25s) silently no-ops
all addon configuration, because postinstallAddon resolves each addon's
postinstall hook from the sandbox's node_modules and returns quietly when
resolution fails - addon-vitest's setup would disappear from sandboxes. 158e3c6e ci: trim fixed overhead from the sandbox create flow
Four independent trims, measured on a timestamped local reproduction of
angular-vite sandbox creation (107s -> 56s) and a phase decomposition of
the CI create jobs (83-106s 'Create Sandbox' step):
- Yarn setup becomes two file writes. installYarn2 ran 'yarn set version
berry' plus chained 'yarn config set' calls: ~12 yarn boots and two
network downloads (corepack's bootstrap yarn, then the latest Berry) per
sandbox. The sandbox now vendors the repository's own pinned yarn release
via yarnPath and writes .yarnrc.yml directly. packageManager is pinned in
the sandbox package.json to the same version: without the field, corepack
auto-pins its classic bootstrap yarn, and JsPackageManagerFactory would
read that field and misclassify the sandbox as Yarn 1 (caught by the
local reproduction; installs kept working through yarnPath delegation
while the CLI ran classic-syntax commands).
- The final 'yarn install' no longer wipes node_modules first. The wipe
forced a full re-extraction of the tree (~10-25s on CI) that yarn's
incremental install makes redundant.
- Extra sandbox deps carry explicit version ranges, so addExtraDependencies
does not probe the registry (a subprocess each) to resolve 'latest' for
packages whose major we already know - and sandbox contents stop drifting
when a new major is published.
- The executor images move to cimg/node:22.22.3, matching .nvmrc. That
satisfies Angular's minimum Node version, so the per-job 'node/install'
step (~9s on every angular create/dev job) is gone; the create jobs also
pre-warm the npx cache for the pinned gitpick version the CLI spawns, so
the template download does not pay a cold npx install.
Rejected while implementing: passing skip-install to the init CLI step
(would fold init's install into the final one, ~15-25s) silently no-ops
all addon configuration, because postinstallAddon resolves each addon's
postinstall hook from the sandbox's node_modules and returns quietly when
resolution fails - addon-vitest's setup would disappear from sandboxes.