# Changelog

## 8.0.0

- Add support for multiple patch files for a single package. #474

## 7.0.2

- Bump semver again (contribution from @rsanchez in #477)

## 7.0.1

- Bump semver (contribution from @stianjensen in #466)

### Breaking changes

- Bump `yaml` to fix security issue. Required bumping minimum node version from
  8 to 14. (contribution from @mayank99 in #463)

### Other changes

- Bump `cross-spawn` (contribution from @stianjensen in #457)
- Replace `is-ci` with `ci-info` (contribution from @paescuj in #446)
- Make version number parsing more robust (contribution from @MHekert in #361)

## 6.5.1

Special thanks to @orta again for putting this release together.

- Improve error message for missing lockfile entry (contribution from @Andarist
  and @farskid in #439)
- Fix creating patches for github dependencies (contribution from @dijonkitchen
  in #444)
- Improve yarn 2 support by copying .yarn dir when creating patch (contribution
  from @bdwain in #438)
- Upgrade `fs-extra` (contribution from @stianjensen in #441)
- Add support for nmp lockfile v2 (contribution from @anas10 in #434)

## 6.5.0

Special thanks to @orta for stepping in to get this release out.

- Don't show issue creation tips for DefinitelyTyped (contribution from @orta in
  #331)
- Add --error-on-warn flag (contribution from @mvargeson in #345)
- Add excplit git diff path prefixes (contribution from @tye-singwa in #395)
- Add yarn 2 compatibility (contribution from @maman in #363)
- Update license (contribution from @Serjobas in #422)
- Fix patch file parse but (contribution from @bill2004158 in #301)
- Add unit tests for getPackageVersion (contribution from @MHekert in #359)
- Deref symlink on copying .npmrc and .yarnrc in makePatch (contribution from
  @jimmyltsinn in 402)
- Fix package.json exclusion (contribution from @milahu in #390)
- Upgrade minimist (contribution from @tapanprakasht in #412)
- Upgrade chalk (contribution from @stianjensen in #389)
- Support .yarnrc (contribution from @NMinhNguyen in #222)

## 6.4.7

- Use npm i --force when creating patches

## 6.4.6

- Update find-yarn-workspace-root (contribution from @sarimarton in #282)
- Fix rare npm crash when creating patches (contribution from @kf6kjg in #271)

## 6.4.5

- Increase max pipe buffer size when creating patch. (contribution from
  @nomi9995 in #287)

## 6.4.4

- Refine --create-issue template

## 6.4.3

- Ensure real path is used when copying package contents. Potentially adds pnpm
  support (contribution from @milahu in #252)

## 6.4.2

- Add package version to --create-issue template

## 6.4.1

- Add backlink to patch-package repo to collect public usage of --create-issue

## 6.4.0

- Add --create-issue option

## 6.3.1

- Fix another createPatch bug involving .git folder hygiene (contribution from
  @gomain in #258)

## 6.3.0

- Add --error-on-fail cli option
- Collate errors and warnings to avoid exiting early (with help from
  @akwodkiewicz in #217)
- Fix .dev.patch suffix bug (with help from @pdcastro in #224)
- Support build metadata in package.json version strings (with help from
  @snowystinger in #213)
- Change 'no patch files found' message from red to blue (contribution from
  @dmhalejr in #211)
- Fix environment variable propogation for spawned tasks (contribution from
  @chpio in #223)
- Add --patch-dir option to readme (contribution from @mikehardy in #225)
- Fix createPatch bug involving .git folder hygiene (contribution from @haroenv
  in #231)

## 6.2.2

- Take config from .yarnrc when making patches (contribution from @NMinhNguyen
  in #222)

## 6.2.1

- Avoid infinite loop when invoked without package.json
- Fall back to version in package-lock (contribution from @bschlenk in #206)
- Add tips about Docker and CI to README (contribution from @harriha in #208)
- Remove update notifier (contribution from @christianbundy in #196)
- Add github actions checks (contribution from @asadm in #186 and @DanielRuf in
  #188, #187)
- Fix url in README (contribution from @DanielRuf in #184)
- Upgrade node in CI to 12 (contribution from @DanielRuf in #183)

## 6.2.0

- Add support for dev-only patches (#159 again)

## 6.1.4

- Use --ignore-scripts when making patches if it fails without (#151)

## 6.1.3

- Fail when patches are found for uninstalled packages (#159)
- Support private registries declared in .npmrc (Contribution from @cherniavskii
  in #152)

## 6.1.2

- Explicitly handle failure edge case where symlinks are modified/created (#118)

## 6.1.1

- Fix npm edge case of package installed from url (#134)

## 6.1.0

- Add support for yarn workspaces
- Degrade 'file mode change not required' error to warning

## 6.0.7

- Don't try to detect package manager on patch application (#133)

## 6.0.6

- Better error messages for patch parse failures (#131)

## 6.0.5

- Use lockfiles to get package resolutions.

## 6.0.4

- Fix patch parsing issue affecting windows (#124)

## 6.0.3

- Allow relative file paths for --patch-dir (Contribution from @lots0logs in
  #119)
- Fix version string handling (Contribution from @teppeis in #122)
- Add support for custom resolutions field in app's package.json (#125)
- Fix property access bug (#123)
- Move @types/is-ci from dependencies to devDependencies (#121)

## 6.0.2

- Revert failure exit code when no patches are found.

## 6.0.1

- Document --patch-dir option in readme

## 6.0.0

### Highlights!

- No longer dependent on Git to apply patches
- Patch files are created much much much faster 🏃🏽‍♀️💨
- Fixed lots of small bugs
- Explicit support for nested packages

For full details see the prerelease notes.

## 6.0.0-18

- Allow fuzzy patch hunk application.
- Minor UI tweaks
- Ignore global git config to prevent issues like #109 & #115
- Add --ignore-engines to yarn invocation

## 6.0.0-17

- Fix the removal of old patch files when creating new ones.

## 6.0.0-16

- Fail postinstall only on CI to prevent weird upgrade issues locally (see #86)
- Fail if no patches are present

## 6.0.0-15

- Handle mode changes
- Backwards-compatible patch file parsing

## 6.0.0-14

- Handle renaming files properly

## 6.0.0-13

- Handle large diffs by not calling .toString on stdout buffer
- Git usage fixes

## 6.0.0-12

- Support explicit nested package patching
- Improve performance of patch creation

## 6.0.0-11

- Handle crlf line breaks in patch parser (Contribution from @NMinhNguyen)

## 6.0.0-10

- Add --patches-dir option (Contribution from @davidpett)

## 6.0.0-9

- Fix patch application bug when creating new files (Contribution from
  @stmarkidis)

## 6.0.0-8

- Improve diffing speed (Contribution from @KevinVlaanderen)

## 6.0.0-7

- Use --no-ext-diff option when generating diffs (Contribution from @janv)

## 6.0.0-6

- Make include/exclude regexes applied relative to the package root. Fixes #54

## 6.0.0-5

- Fix preventing scripts from running when making patch file

## 6.0.0-4

- Don't delete package.json during patch creation

## 6.0.0-3

- Bugfixes for patch application
- Prevent scripts from running when making patch file

## 6.0.0-2

- Bugfixes for patch application

## 6.0.0-1

- Bugfixes for patch application

## 6.0.0-0

- Reimplement most of patch application in TypeScript

## 5.1.1

- Fix idempotency regression. See #39

## 5.1.0

- Add `--reverse` option for patch application. See #37

## 5.0.0

- Remove yarn patching code
- Recommend postinstall-prepare in README for yarn compatibility

## 4.0.0

- Ignore all package.json files by default
- Exit with appropriate error when git is not available

## 3.6.1

- Fix bug where patch-package was complaining about failing when it had, in
  fact, succeeded. See #31

## 3.6.0

- Remove git headers from patch files to prevent git from thinking files are
  part of the index

## 3.5.3

- Change the way patch files are re-written when the project root dir is not the
  same as the git root dir.
- Remove redundant windows warning about whitespace

## 3.5.2

- Update README

## 3.5.1

- Ignore end-of-line whitespace when creating and applying patch files

## 3.5.0

- Add support for filtering particular paths

## 3.4.6

- Ensure use of unix-style paths everywhere

## 3.4.5

- Fix description of a hunk in error message

## 3.4.4

- Don't use `git apply` with `--unsafe-paths` since it is useless.

## 3.4.3

- Fix typo in error message

## 3.4.2

- Revert previous fix and suggest editing .gitattributes as an alternative

## 3.4.1

- Fix CRLF handling on Windows

## 3.4.0

- Add npm shrinkwrap support

## 3.3.6

- Use posix paths and line separators even on windows, for git's sake.

## 3.3.5

- Resolve paths in patch files for situations where the git root is not the same
  as the app root.

## 3.3.4

- Pass --unsafe-paths option to `git apply` to let it work on arbitrary file
  paths (i.e. files which are not in a git repo or files which are outside of
  the working directory)

## 3.3.3

- Fix bug introduced in 3.3.2
- Add progress reporting during patch making

## 3.3.2

Windows fixes:

- Use `cross-spawn` for spawning child processes
- Use `git apply` for applying patches, rather than `patch`

Contribution by [@ashmind](https://github.com/ashmind)

## 3.3.1

- Use `fs-extra` to copy files instead of the `cp` shell command, which doesn't
  work on Windows

## 3.3.0

- Use `+` instead of `:` in patch file names because `:` is illegal on Windows.

## 3.2.1

- Make update-notifier message show local install

## 3.2.0

- Add update-notifier to notify users of patch-package updates

## 3.1.0

- Add support for scoped packages

## 3.0.0

- Add support for npm5
- Make yarn patching a cli option, off by default

## 2.1.1

Improve error messages

## 2.1.0

Reduce yarn error to a warning

## 2.0.0

- Require yarn as a peer dependency
- Remove support for NPM

Moving fast and breaking things. It turns out yarn doesn't run the prepare hook
after removing a package, so we use patch-package to patch a local version of
yarn. I'm not proud of this. Probably wouldn't have released this in the first
place if I had known that yarn didn't have all the right hooks. Oh well. Now I
have a reason to contribute to Yarn I guess.

## 1.2.1

- Fix patch creation logic around nested node_modules

## 1.2.0

- Enable picking up changes in nested node_modules folders.
- Enable adding new files, not just patching existing files.

## 1.1.1

- Fix bug that made exit code 1 regardless of success or failure.

## 1.1.0

- Make applying patches work
- Add nice colorful log messages.

## 1.0.0

Initial broken release
