Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
0c94019
fix(pruning): run yarn heroku prune
Frzk Jul 31, 2026
8e3dd93
Migrate pnpm install error handling to call-site classification (#1735)
colincasey Jul 31, 2026
8dc1cf3
Migrate npm prune dev-dependency step to call-site failure classifica…
colincasey Jul 31, 2026
9f4635e
Relocate list_dependencies into the package-manager modules (#1737)
colincasey Jul 31, 2026
c292c1a
Split the yarn devDependency prune into per-flavor workers and migrat…
colincasey Jul 31, 2026
97069a0
Migrate pnpm dev-dependency pruning to call-site classification (#1739)
colincasey Jul 31, 2026
ca36293
Chore(deps): bump actions/setup-node from 6 to 7 (#1744)
dependabot[bot] Aug 3, 2026
c26545d
Update Inventory for heroku/nodejs-engine (#1750)
heroku-linguist[bot] Aug 3, 2026
13ef63c
Chore(deps): bump the javascript-dependencies group (#1745)
dependabot[bot] Aug 3, 2026
ce3283e
Chore(deps): bump the rust-dependencies group (#1747)
dependabot[bot] Aug 3, 2026
35d3d50
Chore(deps): bump nodejs-data in /resolve-version (#1748)
dependabot[bot] Aug 3, 2026
c5219e3
Chore(deps-dev): bump typescript (#1746)
dependabot[bot] Aug 3, 2026
63a0119
Prepare release v361 (#1751)
heroku-linguist[bot] Aug 3, 2026
b442526
Update Inventory for heroku/nodejs-engine (#1752)
heroku-linguist[bot] Aug 6, 2026
f2f9ae9
Prepare release v362 (#1754)
heroku-linguist[bot] Aug 7, 2026
d22aea2
Merge tag 'v362' into deps/upstream_v362
SCedricThomas Aug 14, 2026
593b430
Merge branch 'master' into deps/upstream_v362
SCedricThomas Aug 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ trim_trailing_whitespace = true
# Migrated shell files (kept in sync with the makefile's MIGRATED_FILES list). Tabs are used
# so here-documents can be indented:
# https://www.gnu.org/software/bash/manual/html_node/Redirections.html#Here-Documents
[{lib/failures.sh,lib/package_managers/*.sh}]
[{lib/failures.sh,lib/package_manager.sh,lib/package_managers/*.sh,lib/utils/*.sh}]
binary_next_line = true
indent_style = tab
shell_variant = bash
Expand Down
37 changes: 33 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,31 @@
## [Unreleased]


## [v362] - 2026-08-07

- Added Node.js 26.7.0 (linux-amd64)

## [v361] - 2026-08-03

- Added Node.js 26.6.0 (linux-amd64)
- Added Node.js 24.19.0 (linux-amd64)
- Migrated the pnpm lockfile-out-of-sync (`ERR_PNPM_OUTDATED_LOCKFILE`) build error onto the call-site failure-classification framework. ([#1735](https://github.com/heroku/heroku-buildpack-nodejs/pull/1735))
- Added pnpm to verbose build-summary dependency listing. ([#1737](https://github.com/heroku/heroku-buildpack-nodejs/pull/1737))

## [v360] - 2026-07-29

- Added Node.js 26.5.1 (linux-amd64)
- Added Node.js 24.18.1 (linux-amd64)
- Added Node.js 22.23.2 (linux-amd64)
- Migrated the Yarn 2+ (Berry) lockfile-out-of-sync (`YN0028`) build error onto the call-site failure-classification framework. ([#1726](https://github.com/heroku/heroku-buildpack-nodejs/pull/1726))
- Migrated the npm lockfile-out-of-sync (`EUSAGE`) build error onto the call-site failure-classification framework. ([#1727](https://github.com/heroku/heroku-buildpack-nodejs/pull/1727))

## [v359] - 2026-07-27

- Removed the unused `lib/features.sh` A/B rollout module. ([#1719](https://github.com/heroku/heroku-buildpack-nodejs/pull/1719))
- Migrated the npm peer-dependency-conflict (`ERESOLVE`) build error onto the call-site failure-classification framework. ([#1720](https://github.com/heroku/heroku-buildpack-nodejs/pull/1720))
- Migrated the Yarn 1.x outdated-yarn-lockfile build error onto the call-site failure-classification framework. ([#1721](https://github.com/heroku/heroku-buildpack-nodejs/pull/1721))

## [v358] - 2026-07-09

- Added Node.js 26.5.0 (linux-amd64)
Expand Down Expand Up @@ -169,7 +194,7 @@

## [v328] - 2026-02-02

- Support pnpm workspace pruning. ([#1535](https://github.com/heroku/heroku-buildpack-nodejs/pull/1535))
- Support pnpm workspace pruning. ([#1535](https://github.com/heroku/heroku-buildpack-nodejs/pull/1535))
- Fix pnpm workspace detection. ([#1528](https://github.com/heroku/heroku-buildpack-nodejs/pull/1528))
- Fixed issue with parsing pnpm version from the `packageManager` field when an integrity check is present. ([#1540](https://github.com/heroku/heroku-buildpack-nodejs/pull/1540))

Expand Down Expand Up @@ -207,7 +232,7 @@

## [v320] - 2025-12-03

- Updated default Node.js version to 24.x. ([#1510](https://github.com/heroku/heroku-buildpack-nodejs/pull/1510))
- Updated default Node.js version to 24.x. ([#1510](https://github.com/heroku/heroku-buildpack-nodejs/pull/1510))

## [v319] - 2025-11-26

Expand Down Expand Up @@ -281,7 +306,7 @@

- Added Node.js 24.6.0 (linux-amd64)
- Fix escaping for buildpack metrics. ([#1451](https://github.com/heroku/heroku-buildpack-nodejs/pull/1451))
- Remove calls to unsupported metrics format (i.e.; `mcount`, `mtime`, `mmeasure`) ([#1454](https://github.com/heroku/heroku-buildpack-nodejs/pull/1454))
- Remove calls to unsupported metrics format (i.e.; `mcount`, `mtime`, `mmeasure`) ([#1454](https://github.com/heroku/heroku-buildpack-nodejs/pull/1454))

## [v303] - 2025-08-05

Expand Down Expand Up @@ -1388,7 +1413,11 @@ Accepts `cacheDirectories` array in package.json to override default `node_modul

- Documented at https://devcenter.heroku.com/articles/nodejs-support#cache-behavior

[unreleased]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v358...main
[unreleased]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v362...main
[v362]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v361...v362
[v361]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v360...v361
[v360]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v359...v360
[v359]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v358...v359
[v358]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v357...v358
[v357]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v356...v357
[v356]: https://github.com/heroku/heroku-buildpack-nodejs/compare/v355...v356
Expand Down
65 changes: 50 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,77 @@

Thanks for making a contribution to the Heroku Node.js Buildpack!

*Note: If you are looking to open an issue or make a contribution to the Heroku Node.js Cloud Native Buildpacks (this includes builds made with `pack`), go here: https://github.com/heroku/nodejs-engine-buildpack*
*Note: If you are looking to open an issue or make a contribution to the Heroku Node.js Cloud Native Buildpacks (this includes builds made with `pack`), go here: https://github.com/heroku/buildpacks-nodejs*

## Setup
## Prerequisites

### Install Docker (optional)
For local development, you may need the following tools:

Before you get started, you may want to [install Docker](https://docs.docker.com/engine/install/). Docker will be needed to run the test suite.
- [Docker](https://docs.docker.com/engine/install/) (required to run the test suite)
- [Rust](https://www.rust-lang.org/tools/install) (for building the version resolver in `resolve-version/`)
- The `x86_64-unknown-linux-musl` cross-compilation target and linker (used by `make build-resolvers`)

If you don't install Docker, you have the option of waiting until your pull request open to run tests. [The Travis tests can be found here.](https://travis-ci.com/github/heroku/heroku-buildpack-nodejs/pull_requests)
## Clone the repo

### Clone Repo

First, you will want to fork and clone the repository.
Fork and clone the repository:

```sh
git clone git@github.com:your-username/heroku-buildpack-nodejs.git
```

Once you have this on your local machine, you're ready to start making changes.
## Deploying an app with a fork or branch

Push your changes to your fork, then create a new Heroku app to test it, or configure an existing app to use your buildpack:

```sh
# Create a new Heroku app that uses your buildpack
heroku create --buildpack <your-github-url>

# Configure an existing Heroku app to use your buildpack
heroku buildpacks:set <your-github-url>

# You can also use a git branch!
heroku buildpacks:set <your-github-url>#your-branch
```

## Testing

### Writing Tests
The tests use [Docker](https://www.docker.com/) to simulate Heroku's stacks, and run via the vendored [shunit2](https://github.com/kward/shunit2) test framework.

For any change you make, write a unit test in `test/run` that would break if you removed the code you've just worked on. Add a fixture (`test/fixtures/*`) if you need an additional sample app to test with.

Run the full test suite:

There are unit tests that are run with `shunit`. For any change you make, write a unit test in `test/run` that would break if you removed the code that you've just worked on. Add a fixture (`test/fixtures/*`) if you need an additional sample app to test with. [More info about testing here.](https://github.com/heroku/heroku-buildpack-nodejs#tests)
```sh
make test
```

### Running Tests
Test a single stack (usually adequate):

To run the tests, run `make test`. You will need Docker installed. This will start a test run of all Heroku stack images that will run serially. If you want to test one stack image (which is usually adequate), run `make heroku-24-build` (or whatever stack image you'd like to test).
```sh
make heroku-22-build
make heroku-24-build
make heroku-26-build
```

Run just the unit tests:

```sh
make unit
```

Lint and check formatting of the shell scripts:

```sh
make lint
```

## Opening a Pull Request

After the work is completed, please open a pull request. If it links to an Issue, please make sure to include in the Description:
After the work is completed, please open a pull request. If it links to an Issue, include it in the description:

```md
Fixes: https://github.com/heroku/heroku-buildpack-nodejs/issues/xxx
```

In the Description, also add an explanation of the work that's done and the tests that are included.
Also add an explanation of the work done and the tests included.
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ GEM
base64 (0.3.0)
diff-lcs (1.6.2)
erubis (2.7.0)
excon (1.2.8)
excon (1.5.0)
logger
heroics (0.1.3)
base64
Expand Down
Loading