Skip to content

Sync with upstream v362 - #269

Draft
SCedricThomas wants to merge 17 commits into
masterfrom
deps/upstream_v362
Draft

Sync with upstream v362#269
SCedricThomas wants to merge 17 commits into
masterfrom
deps/upstream_v362

Conversation

@SCedricThomas

Copy link
Copy Markdown

Sync Heroku Node.js Buildpack to v362.

Security: makes the CERT-FR patched Node.js versions available (22.23.2, 24.18.1, 26.5.1 and newer).

Validation: ShellCheck and bash syntax checks passed. Full formatting/Rust validation requires shfmt and cargo.

Frzk and others added 16 commits July 31, 2026 16:23
Instead of yarn scalingo prune
…ku#1735)

* Migrate pnpm install error handling to call-site classification

The pnpm install path was the last dependency-install command still
wrapped in the legacy `monitor` helper, routing all failures through the
global ERR trap where pnpm output had no matcher at all. Move it onto the
call-site failure-classification framework, matching the npm and yarn
install paths already migrated.

Classify ERR_PNPM_OUTDATED_LOCKFILE (frozen-lockfile drift) with a
user-facing message and a `user` classification, gating on pnpm's stable
error code rather than its version-drifting message text. The `monitor`
wrapper is dropped; the install_dependencies_time metric is preserved and
the peak-memory gauge retired along with the helper.

W-23651645

* Drop install_dependencies_memory assertion from pnpm metadata test

The memory gauge was recorded by the `monitor` wrapper, which the
preceding commit removed from the pnpm install path. Mirrors the same
removal already done for the npm and yarn metadata tests.

W-23651645
…tion (heroku#1736)

Drop the legacy `monitor` wrapper around `npm prune` in
package_managers::npm::prune_devdependencies and capture the command
inside `if ! { npm prune … | tee log; }`, mirroring the npm install
path. Add package_managers::npm::_handle_prune_pipefail to classify a
downstream pipe (tee) failure as buildpack-side (npm-prune-pipefail);
real npm-prune failures bubble to the legacy trap unchanged.

Preserve the prune_dev_dependencies_time metric on both branches and
drop the prune_dev_dependencies_memory metric (monitor's sampling is
not carried forward), removing its now-stale test/run-npm assertion.
)

Move the verbose build-summary dependency listing out of the standalone
lib/dependencies.sh (now deleted) into a package_manager::list_dependencies
coordinator that delegates to package_managers::{yarn,npm,pnpm}::list_dependencies,
mirroring package_manager::_dispatch_run_script.

- pnpm now lists via `pnpm list` instead of falling back to `npm ls`
- npm listing no longer trims its first line (dropped `| tail -n +2`)
- blank-line framing lifted into the coordinator so all three managers
  are framed identically; the per-PM functions are presentation-free
…e off the monitor wrapper (heroku#1738)

Moves the yarn devDependency prune off the legacy `monitor` command wrapper
and onto the call-site capture idiom used by the install paths, and splits the
single branchy function into per-flavor workers mirroring the existing
classic/Berry install split.

The public `prune_devdependencies` entry keeps the shared NODE_ENV/YARN_PRODUCTION
skip gates and dispatches to `_prune_classic_devdependencies` or
`_prune_berry_devdependencies`, each owning its own command, log capture, timing,
and failure classifier. Both share one `_handle_prune_pipefail` wrapper, matching
how the install paths share `_handle_install_pipefail`. No prune-specific failure
mode is classified today -- the classifiers are scaffolding that falls through to
the legacy trap, so end-user behavior is unchanged.

Dropping the monitor wrapper drops the prune_dev_dependencies_memory build-data
metric; the _time metric is preserved via build_data::set_duration and the
run-yarn assertion is updated accordingly.
…ku#1739)

Replace the two monitor-wrapped pnpm prune invocations (the workspace
production reinstall and the non-workspace `pnpm prune --prod`) with the
call-site failure-classification idiom, extracted into a shared
`package_managers::pnpm::_run_prune` helper so the capture/classify/metric
logic is not duplicated across both paths.

Add `_handle_prune_pipefail` for the tee-side (buildpack) failure case,
plus unit tests covering it and the strict-mode option restoration on
sourcing the pnpm lib. Dropping the `monitor` wrapper also drops the
`prune_dev_dependencies_memory` metric, so its assertion is removed from
the pnpm metadata test; the duration metric is preserved.
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
### Added

- Node.js 26.6.0 (linux-amd64)
- Node.js 24.19.0 (linux-amd64)

Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Bumps the javascript-dependencies group in /yarn2-plugins/prune-dev-dependencies with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@yarnpkg/builder](https://github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-builder) | `4.2.3` | `4.2.4` |
| [@yarnpkg/core](https://github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-core) | `4.9.0` | `4.9.1` |
| [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome) | `2.5.2` | `2.5.6` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.0` | `26.1.2` |
| [fs-extra](https://github.com/jprichardson/node-fs-extra) | `11.3.6` | `11.4.0` |


Updates `@yarnpkg/builder` from 4.2.3 to 4.2.4
- [Release notes](https://github.com/yarnpkg/berry/releases)
- [Changelog](https://github.com/yarnpkg/berry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yarnpkg/berry/commits/@yarnpkg/builder/4.2.4/packages/yarnpkg-builder)

Updates `@yarnpkg/core` from 4.9.0 to 4.9.1
- [Release notes](https://github.com/yarnpkg/berry/releases)
- [Changelog](https://github.com/yarnpkg/berry/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yarnpkg/berry/commits/@yarnpkg/core/4.9.1/packages/yarnpkg-core)

Updates `@biomejs/biome` from 2.5.2 to 2.5.6
- [Release notes](https://github.com/biomejs/biome/releases)
- [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md)
- [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.5.6/packages/@biomejs/biome)

Updates `@types/node` from 26.1.0 to 26.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `fs-extra` from 11.3.6 to 11.4.0
- [Changelog](https://github.com/jprichardson/node-fs-extra/blob/master/CHANGELOG.md)
- [Commits](jprichardson/node-fs-extra@11.3.6...11.4.0)

---
updated-dependencies:
- dependency-name: "@yarnpkg/builder"
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: javascript-dependencies
- dependency-name: "@yarnpkg/core"
  dependency-version: 4.9.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: javascript-dependencies
- dependency-name: "@biomejs/biome"
  dependency-version: 2.5.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: javascript-dependencies
- dependency-name: "@types/node"
  dependency-version: 26.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: javascript-dependencies
- dependency-name: fs-extra
  dependency-version: 11.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: javascript-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the rust-dependencies group in /resolve-version with 4 updates: [clap](https://github.com/clap-rs/clap), [serde](https://github.com/serde-rs/serde), [serde_json](https://github.com/serde-rs/json) and [toml](https://github.com/toml-rs/toml).


Updates `clap` from 4.6.1 to 4.6.4
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](clap-rs/clap@clap_complete-v4.6.1...clap_complete-v4.6.4)

Updates `serde` from 1.0.228 to 1.0.229
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](serde-rs/serde@v1.0.228...v1.0.229)

Updates `serde_json` from 1.0.150 to 1.0.151
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](serde-rs/json@v1.0.150...v1.0.151)

Updates `toml` from 1.1.2+spec-1.1.0 to 1.1.4+spec-1.1.0
- [Commits](toml-rs/toml@toml-v1.1.2...toml-v1.1.4)

---
updated-dependencies:
- dependency-name: clap
  dependency-version: 4.6.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: serde
  dependency-version: 1.0.229
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: serde_json
  dependency-version: 1.0.151
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: toml
  dependency-version: 1.1.4+spec-1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [nodejs-data](https://github.com/heroku/buildpacks-nodejs) from `e0ef63d` to `808c2c4`.
- [Release notes](https://github.com/heroku/buildpacks-nodejs/releases)
- [Commits](heroku/buildpacks-nodejs@e0ef63d...808c2c4)

---
updated-dependencies:
- dependency-name: nodejs-data
  dependency-version: 808c2c4bf4e5fc2b1866a57afae6e8026607fddd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [typescript](https://github.com/microsoft/TypeScript) from 6.0.3 to 7.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 7.0.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
### Added

- Node.js 26.7.0 (linux-amd64)

Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
Co-authored-by: heroku-linguist[bot] <136119646+heroku-linguist[bot]@users.noreply.github.com>
@SCedricThomas SCedricThomas self-assigned this Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants