ds300 / ds300/patch-package

Don't warn about mismatched versions when using multiple patches for the same library

Open
#541 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
11.2k
Forks
325
PR merge metrics
No merged PRs in 30d

Description

I just found out about https://github.com/ds300/patch-package/issues/43 which will make our patches really easy to work with by separating patches from each other. What a great feature!

Unfortunately we have enabled ` --error-on-warn` to ensure we keep our patches up to date, and so the warnings we get from multi-patch names causes our builds to break.

I've _patched patch-package with patch-package_ locally to skip `+` version patches, to work around this and avoid the warning. I'm sure there are some gotchas with the `.includes('+')` syntax I've used here (NPM versions that include the `+` character?) but I thought I should submit this as an issue to see whether it could be applied.

Here is the diff that solved my problem:

```diff
diff --git a/node_modules/patch-package/dist/applyPatches.js b/node_modules/patch-package/dist/applyPatches.js
index c0217cf..90f3eda 100644
--- a/node_modules/patch-package/dist/applyPatches.js
+++ b/node_modules/patch-package/dist/applyPatches.js
@@ -92,13 +92,19 @@ function applyPatchesForApp({ appPath, reverse, patchDir, shouldExitWithError, s
// yay patch was applied successfully
// print warning if version mismatch
if (installedPackageVersion !== version) {
- warnings.push(createVersionMismatchWarning({
- packageName: name,
- actualVersion: installedPackageVersion,
- originalVersion: version,
- pathSpecifier,
- path,
- }));
+ // Ignore multi-patch versions
+ if (version.includes('+') && version.split('+')[0] === installedPackageVersion) {
+ console.log("Ignoring multi-patch version mismatch for", pathSpecifier);
+ } else {
+ warnings.push(createVersionMismatchWarning({
+ packageName: name,
+ actualVersion: installedPackageVersion,
+ originalVersion: version,
+ pathSpecifier,
+ path,
+ }));
+
+ }
}
console.log(`${chalk_1.default.bold(pathSpecifier)}@${version} ${chalk_1.default.green("✔")}`);
}
```

This issue body was [partially generated by patch-package](https://github.com/ds300/patch-package/issues/296) ❤️

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.