- Update go to 1.19 and recompile resolve-version (#1050)
- Add metrics and tests for Node.js 19.x line (#1046)
- Update default node version to 18.x for heroku-20 and newer (#1045)
- Dependency pruning support for Yarn 2 / 3 / 4 (#1040)
- Remove dependency on semver.herokuapp.com (#1037)
- Adjust curl retry and connection timeout handling (#1017)
jq
is no longer installed by the buildpack(#1016)- Switch away from deprecated path-based S3 URLs (#1013)
- Drop the
yarn-native-cache
feature flag (#1004) - Fix for
npm ci
caching (#1009) - Fix skip pruning behavior with Yarn 2 (#1008)
- Add metrics plugin for Node 17 and 18 (#1002)
- Add warning message for Node 18+ incompatibility with heroku-18 (#1002)
- Enable Yarn 2
devDependency
pruning using a custom plugin for all customers (#1001) - Test against Heroku-22 (#1003)
- Enable Yarn 2
devDependency
pruning using a custom plugin for 20% of customers (#999) - Set xtrace mode in buildpack when BUILDPACK_XTRACE environment variable is set (#925)
- Rollback to v192 due to an edge case with yarn 2 pruning that would cause all devDependencies to be installed
- Added Yarn 1.22.18 to
inventory/yarn.toml
(#992) - Fix issue with pruning yarn 2 cache when using the workspaces plugin (#990)
- Fix issue with nested yarn cache during cache restoration (#987)
- Fix issue with nested yarn caches and cache growth (#985)
- Improve support for yarn 2+ installs (#978)
- Revert non-zero-install support from #888 (#944)
- Update Node version inventory, includes 12.22.6, 14.17.6, 16.8.0, 16.7.0 and others (#940)
- Support non-zero-install support for Yarn 2 (#888)
- Upgrade heroku_hatchet to 7.3.4 to get CI green again (#936)
- Fix typo in conflicting lockfile failure message (#901)
- Use local packages with Yarn when present (#913)
- Add support for running "npm ci" when "npm-shrinkwrap.json" is found on the project directory (#938)
- Refactor $WEB_CONCURRENCY logic (#931)
- Fix broken tests, update node and yarn inventory, update shunit2 (#934)
- Fix NODE_BINARY_URL extraction prefix stripping logic (#928)
- Prune devDependencies with Yarn 2 (#891)
- Add 10.x, 12.x, and 14.x to inventory (902)
- Fix yarn workspace plugin detection (#905)
- Update node version to 14 (#885)
- Add unit tests around the behavior of
WEB_CONCURRENCY
(#876) - Add Node v15.6.0 to inventory (#892)
- add Node 10.23.2 and 15.7.0 to inventory (#894)
- Update Node.js plugin for Node 15; Add tests for Node 15 (#895)
- Log the build time in a failed build (#896)
- Add Node v15.8.0 to inventory (#897)
- add Node 14.15.3 and 15.5.0 to inventory (#881)
- Report on parsing errors for
resolve-version.rs
(#883) - Add an environment variable for using npm install (instead of npm ci) (#882)
- add Node 10.23.1, 12.20.1, 14.15.4, and 15.5.1 to inventory (#886)
- add Node 15.4.0 to inventory (#873)
- Fix syntax for passing in script flags for npm build script (#869)
- add Node 15.3.0 and 12.20.0 to inventory (#870)
- Add NODE_BUILD_FLAG env var (#859)
- Add 12.19.1, 14.15.1, and 15.2.1 to inventory for security releases (#865)
- add Node 15.2.0 to inventory (#861)
- Use jq from the stack image (#854)
- Start testing new
resolve
binaries with inventory lists for Node and Yarn (#855) - Follow up to #855 to send captured data with bin/report (#858)
- Only run immutable cache in yarn 2 if caching enabled (#832)
- Added Hatchet regression tests (#833)
- Delete unused fixtures (#835)
- Expand
npm ci
usage to 100% of builds (#842)
- Install Yarn version at 1.22.x when not specified in package.json engines (#817)
- Run
yarn install
for all Yarn 2 builds (#819) - Change all references from Yarn2 to Yarn 2 (#824)
- Support Yarn 2 node modules (#821)
- Detect for "node-modules" nodeLinker for Yarn 2 (#828)
- provide custom binary url for node and yarn binary downloads (#804)
- allow skipping node_modules removal with SKIP_NODE_MODULES_CHECK (#798)
- expand npm ci usage to 75% of builds (#812)
- update docs URL when node modules are checked into git (#794)
- move disabling yarn caching YARN_CACHE env var (#796)
- use meta_get "node-package-manager" for reporting (#802)
- change YARN_CACHE to USE_YARN_CACHE env var (#803)
- create a pull request to merge Yarn 2 support (#795)
- edits to Yarn 2 info and warning messaging (#806)
- Add warning for detection of Yarn 2 usage with caching (#755)
- Add warning for Yarn 2 usage, warn user of ignoring engine from package.json (#761)
- Add warning for if .npmrc file exists when using Yarn 2 (#764)
- Add warning for if .yarnrc file exists when using Yarn 2 (#768)
- Add checks for Yarn 2 (#759)
- Turn off production and ignore-script flags for Yarn 2 and add global vendored yarn alias (775)
- Set
$YARN
to false when$YARN2
is true (#776) - Skip writing to the cache and pruning of the node modules when Yarn 2 is used (#785)
- Test use of packages in
.yarn/release
directory (#786)
- display yarn engine log to build output when engine is provided in monorepo (#771)
- move proxy issues section from readme to dev center (#778)
- warn when NO_PROXY is not set to "amazonaws.com" and HTTP_PROXY or HTTPS_PROXY is set (#782)
- add heroku cleanup script (#788)
- add a build step for cleanup script and output to log file (#790)
- Update Travis badge to
master
and other changes in README (#753) - Up feature flag test groups (#758)
- Add Heroku-20 to the Travis test matrix (#763)
- Add Node 14 plugin and rebuild 10, 12, and 13; Remove rebuilding of 8, 9, and 11 (#767)
- Add spec support for Node 13 and 14 (#766)
- Bump rake from 12.3.1 to 12.3.3 (#742)
- Upgrade Go to 1.14 (#744)
- Bump
npm ci
usage for installing dependencies to 20% (#745) - Detect Yarn 2 usage, produce error message, and fail build (until supported) (#746)
- Compress yq binaries (#748)
- Move etc/vendor to lib/vendor (#750)
- Avoid issues in environments requiring proxies for all connections (#708)
- Extend metadata module in preparation for bin/report work (#709)
- Vendor the buildpack stdlib (#710)
- Check the status code when listing S3 buckets (#711)
- Rename script monitoring metadata (#719)
- Extend bin/report (#718)
- Add a minimal version of bin/report. Not user-facing (#700)
- Replace broken kb.heroku.com links with help.heroku.com shortlinks (#698)
- Expand A/B test of native yarn caching to 50% of apps (#695)
- Roll out A/B test of native yarn caching to a small set of apps (#693)
- Updates to metadata saved (#689, #690)
- Add native yarn cache caching behind a flag (#691)
- Don't suppress curl errors (#680)
- Add logging to track yarn workspace usage (#685)
- Log out number of js, jsx, and ts files (#686)
- Prevent
HTTP_PROXY
env var from blocking version-resolution binary
- Turn off npm ci experiment
- Add metadata for build steps (#677)
- Roll out A/B test of npm ci command to 5% of apps (#676)
- Internal fixes (#674, #673)
- Test new A/B testing module (#671, #672)
- Replace nodebin usage in hatchet tests (#669)
- Add ability to list all node or yarn releases (#668)
- Deprecate nodebin in favor of go binary (#667)
- Resolve more inconsistencies with version selection (#666)
- Resolve the known behavior mismatches between nodebin and the go logic (#664)
- Dark-launch new semver matching logic for node binaries (#663)
- Dark-launch new semver matching logic for yarn binaries (#661)
- Add node 12.x as a supported version for Node Metrics beta (#662)
- Deprecate io.js as an alternative runtime (#658)
- Prototyping new version resolution approach to replace Nodebin (#649 - #657)
- Separate prebuild step in log output (#646)
- Clean up script metrics and logging (#647)
- Remove temporary wraning about "run build" change (#644)
- Internal logging changes (#637, #631, #630)
- Add temporary warning about "run build" when the build fails as well (#639)
- Add temporary warning about "run build" change to log output (#636)
- Run the build script by default (#628)
- Make breaking change warning header brighter (#627)
- Add new Build header (#625)
- Fix yarn run error when script is empty string (#624)
- Internal logging changes (#620, #618, #621)
- Detect build scripts even when they are empty (#617)
- Add warning for the upcoming run build change (#616)
- Fix bug where failing builds on CI would not fail CI (#613)
- Internal logging changes (#596, #600)
- Internal changes (#593, #591)
- Handle
$MEMORY_AVAILABLE
whenmemory.limit_in_bytes
is nonsensically large (#531)
- Add warning for flatmap-stream 404 failure (#590)
- Quietly add new build script behavior behind a flag (#584, #585)
- Move cache directory layout (#587)
- Improve bin/detect error messages (#575)
- Add support for Node 11 (#578, #582, #580)
- Update default Node version to 10.x
- Unpin Yarn from 1.9.x (#569)
- Fix a bug with formatting (#572)
- internal changes (#567)
- Default to Yarn 1.9.x to avoid a bug (#568)
- interal changes (#566)
- Icrease Node memory default during builds (#561)
- Rework output when caching directories (#559)
- Only write export script if directory is writeable (#539)
- Testing changes (#552, #557, #558)
- Upgrade the Node Metrics plugin (#564)
- Fix issue with old Node and metrics plugin (#555)
- Add plugin for Node.js Language Metrics
- Internal logging changes
- Internal logging changes
- Skip pruning if
NPM_CONFIG_PRODUCTION
orYARN_PRODUCTION
is defined (#529)
- Skip pruning for versions of npm with known issues with git submodules (#528)
- Add timing metrics (#527)
- Install and prune devDependencies by default (#519)
- [Breaking] Stop setting the env var
NPM_CONFIG_PRODUCTION=true
by default
- Fix issue with
NODE_ENV
in CI (#513)
- Fix bug with previous default cache directories fix for npm and yarn (#511)
- Fix metrics typo (#510)
- Add metrics to track new types of failure (#509)
- Don't default to npm 5.x if the user already has npm >= 5 (#499)
- Bump default version of Node to Node 8 (#497)
- Move default Yarn and npm cache directories to a temporary dir (#459)
LOG_CONCURRENCY
fix (#475)- Default Yarn to
1.x
- Add
BUILD_DIR
to env var blacklist
- Move
WEB_CONCURRENCY
logic to separate file (#467) - Temporarily default Yarn to known-good version
- Improve error messages when bin version requirements are invalid (#457)
- Switch to using nodebin to download the node binary (#451)
- Add
$STACK
to the cache signature (#445) - Log output now differentiates between an empty cache and a new cache signature (#448)
- Remove the use of semver.io to bootstrap npm (#452)
- Switch to using nodebin to download iojs binaries (#450)
- Switch to using nodebin to download the yarn binary (#444)
- Default to npm v5 if
package-lock.json
is present (#429)
- Break the build if yarn and npm lockfiles are both included (#411)
- Add
$PREBUILD
to cache signature (#405) - Check for
.heroku/node
existence (#384) - Add
NODE_ENV=test
totest-compile
(#403) - Install
yarn
if a version is defined inengines
(#404)
- Instrument metrics logging
- Undo the Prepend a leading 0 to
WEB_CONCURRENCY
change
- Use yarn in CI tests if available
- Prepend a leading 0 to
WEB_CONCURRENCY
- Default to the latest LTS node version (6.x)
- Cache node_modules
- No longer run
yarn check
- Clear caches from the slug
- Warn, rather than failing, on a failed
yarn check
- Use cache directories instead of node_modules
- Use yarn, if available, as part of the cache signature
- Warn about yarn's youth and evolution on build failures
- Link to opt-out of yarn instructions
- Use
yarn list
instead ofyarn ls
- Hide final dep tree listings under a
NODE_VERBOSE
flag
- Warn on yarn NODE_ENV and NPM_CONFIG incompatibility
- Pass --ignore-engines flag to yarn to avoid hard failures
- Use yarn instead of npm if yarn.lock file is present
- Do not fail build on output errors
- Do not prune before install (shrinkwrap unsupported by prune)
- Extended warnings (missing dependencies, econnreset, no start)
- Remove hard limit on WEB_CONCURRENCY (32)
- Blacklists the LANG env var
- Adds heroku-prebuild script
- Adds heroku-postbuild script
- Retries all curl requests
- Use HTTPS for node binary downloads again
Several edge-case fixes
- Enables compiling the same directory multiple times
- Updates tests for Node v5
- Moves node_modules/.bin binaries to last on the PATH
Fixes piped output buffering issues
Fixes piped output buffering issues (unsuccessful)
Replaces sed with awk for output formatting
- large output (from assets or npm 3) was crashing sed ('resource unavailable')
Caching improvements
- Fixes modules-checked-in reference URL
- When cache restoration is disabled, empties the cache instead of saving it
- Adds bower_components as a default cache target
Detects bower+angular resolution failures Detects missing grunt/gulp/bower failures
Supports WEB_CONCURRENCY=28 for Performance-L dynos
Fixes not defaulting to NODE_ENV=production
during runtime
Supports WEB_CONCURRENCY for Performance-M dynos
Defaults node environment to 'production'; bugfixes
- Fix runtime signature cache invalidation
- Provide error messaging for un-downloadable binaries
- Default to NODE_ENV=production for both build and runtime
- heroku#60
Npm bootstrapping skipped when using iojs.
- Fixes heroku#202
Refactor to bring caching logic to the forefront.
- Fixes cachDirectories issues
- Addresses heroku#231
- Addresses heroku#226
- Simplifies detect (package.json required)
Updated build failure and help messaging.
Updated messaging.
Disables cache restoration if node_modules already exists.
Accepts cacheDirectories
array in package.json to override default node_modules
caching.