- Use npm i --force when creating patches
- Update find-yarn-workspace-root (contribution from @sarimarton in #282)
- Fix rare npm crash when creating patches (contribution from @kf6kjg in #271)
- Increase max pipe buffer size when creating patch. (contribution from @nomi9995 in #287)
- Refine --create-issue template
- Ensure real path is used when copying package contents. Potentially adds pnpm support (contribution from @milahu in #252)
- Add package version to --create-issue template
- Add backlink to patch-package repo to collect public usage of --create-issue
- Add --create-issue option
- Fix another createPatch bug involving .git folder hygiene (contribution from @gomain in #258)
- 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)
- Take config from .yarnrc when making patches (contribution from @NMinhNguyen in #222)
- 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)
- Add support for dev-only patches (#159 again)
- Use --ignore-scripts when making patches if it fails without (#151)
- Fail when patches are found for uninstalled packages (#159)
- Support private registries declared in .npmrc (Contribution from @cherniavskii in #152)
- Explicitly handle failure edge case where symlinks are modified/created (#118)
- Fix npm edge case of package installed from url (#134)
- Add support for yarn workspaces
- Degrade 'file mode change not required' error to warning
- Don't try to detect package manager on patch application (#133)
- Better error messages for patch parse failures (#131)
- Use lockfiles to get package resolutions.
- Fix patch parsing issue affecting windows (#124)
- 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)
- Revert failure exit code when no patches are found.
- Document --patch-dir option in readme
- 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.
- Allow fuzzy patch hunk application.
- Minor UI tweaks
- Ignore global git config to prevent issues like #109 & #115
- Add --ignore-engines to yarn invocation
- Fix the removal of old patch files when creating new ones.
- Fail postinstall only on CI to prevent weird upgrade issues locally (see #86)
- Fail if no patches are present
- Handle mode changes
- Backwards-compatible patch file parsing
- Handle renaming files properly
- Handle large diffs by not calling .toString on stdout buffer
- Git usage fixes
- Support explicit nested package patching
- Improve performance of patch creation
- Handle crlf line breaks in patch parser (Contribution from @NMinhNguyen)
- Add --patches-dir option (Contribution from @davidpett)
- Fix patch application bug when creating new files (Contribution from @stmarkidis)
- Improve diffing speed (Contribution from @KevinVlaanderen)
- Use --no-ext-diff option when generating diffs (Contribution from @janv)
- Make include/exclude regexes applied relative to the package root. Fixes #54
- Fix preventing scripts from running when making patch file
- Don't delete package.json during patch creation
- Bugfixes for patch application
- Prevent scripts from running when making patch file
- Bugfixes for patch application
- Bugfixes for patch application
- Reimplement most of patch application in TypeScript
- Fix idempotency regression. See #39
- Add
--reverse
option for patch application. See #37
- Remove yarn patching code
- Recommend postinstall-prepare in README for yarn compatibility
- Ignore all package.json files by default
- Exit with appropriate error when git is not available
- Fix bug where patch-package was complaining about failing when it had, in fact, succeeded. See #31
- Remove git headers from patch files to prevent git from thinking files are part of the index
- 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
- Update README
- Ignore end-of-line whitespace when creating and applying patch files
- Add support for filtering particular paths
- Ensure use of unix-style paths everywhere
- Fix description of a hunk in error message
- Don't use
git apply
with--unsafe-paths
since it is useless.
- Fix typo in error message
- Revert previous fix and suggest editing .gitattributes as an alternative
- Fix CRLF handling on Windows
- Add npm shrinkwrap support
- Use posix paths and line separators even on windows, for git's sake.
- Resolve paths in patch files for situations where the git root is not the same as the app root.
- 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)
- Fix bug introduced in 3.3.2
- Add progress reporting during patch making
Windows fixes:
- Use
cross-spawn
for spawning child processes - Use
git apply
for applying patches, rather thanpatch
Contribution by @ashmind
- Use
fs-extra
to copy files instead of thecp
shell command, which doesn't work on Windows
- Use
+
instead of:
in patch file names because:
is illegal on Windows.
- Make update-notifier message show local install
- Add update-notifier to notify users of patch-package updates
- Add support for scoped packages
- Add support for npm5
- Make yarn patching a cli option, off by default
Improve error messages
Reduce yarn error to a warning
- 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.
- Fix patch creation logic around nested node_modules
- Enable picking up changes in nested node_modules folders.
- Enable adding new files, not just patching existing files.
- Fix bug that made exit code 1 regardless of success or failure.
- Make applying patches work
- Add nice colorful log messages.
Initial broken release