14.3.0 (2026-03-29)
- rcfile: allow // comment properties (df0cc01)
- cargo: update dependencies (6af7e45)
14.2.1 (2026-03-21)
- cargo: update dependencies (c6b8a0c)
- core: avoid clone when reading props (e1dea16)
- core: avoid reserialising json to compare (422a26a)
- core: detect indent/newline once (e476300)
- specifier: lazily create node_[range|version] (cc1eac7)
- specifier: optimise parsing (9a91292)
14.2.0 (2026-03-08)
- groups: extend and improve sameMinor policy (42c31a3)
14.1.0 (2026-03-07)
- cli: add --reporter json to fix and format commands (5522ffe), closes #322
- cli: add statusType property to json output (5a82a85), closes #322
- write: detect indentation when config is not set (66c0493), closes #318
14.0.2 (2026-03-07)
14.0.1 (2026-03-05)
14.0.0 (2026-02-16)
- syncpack: remove alpha status (b3ec0ba)
- cargo: update dependencies (8edfa81)
14.0.0-alpha.41 (2026-02-08)
- cargo: update dependencies (1700ed9)
- core: apply semver groups to highest semver calculation (48a80ee), closes #314
14.0.0-alpha.40 (2026-01-30)
- cli: print migration guides for deprecated commands (1e1b904)
- cargo: update dependencies (1bf8f04)
14.0.0-alpha.39 (2026-01-28)
- config: replace tsx with node@>=22.6 type stripping (8b1eaa0)
14.0.0-alpha.38 (2026-01-27)
14.0.0-alpha.37 (2026-01-11)
- rcfile: exit on deprecated or hallucinated config (ed5cc51)
14.0.0-alpha.36 (2026-01-11)
- rcfile: skip npx etc entirely (16031b6)
14.0.0-alpha.35 (2026-01-10)
14.0.0-alpha.34 (2025-12-28)
14.0.0-alpha.33 (2025-12-28)
- cargo: update dependencies (8ae1cc7)
- core: ensure ignored paths are not visited (34d9810), closes #311
14.0.0-alpha.32 (2025-12-07)
- cargo: update dependencies (28f1b8a)
- npm: update dependencies (2d23393)
- pnpm: support PnP (1b43030), closes #297
- core: optimise pattern matching (8582812)
14.0.0-alpha.31 (2025-12-06)
- npm: use trusted publishing (attempt 2) (a9a9899)
14.0.0-alpha.30 (2025-12-06)
- npm: use trusted publishing (bbb761d)
14.0.0-alpha.29 (2025-11-25)
- cargo: update dependencies (0e425fa)
- core: remove unused code (ace7f79)
14.0.0-alpha.28 (2025-11-23)
- cargo: update dependencies (c2c928e)
- cli: completely ignore instances not matching cli filters (ac62d61), closes #308
- npm: update dependencies (024d845)
14.0.0-alpha.27 (2025-11-12)
- cargo: update dependencies (1c6c937)
14.0.0-alpha.26 (2025-11-09)
14.0.0-alpha.25 (2025-11-05)
- config: auto enable custom types (1a9bd68), closes #307
- core: compare unresolved workspace: specifiers (20319d7)
- core: handle specifiers like =9.0.0 (4a06c2c), closes #239
- core: normalise windows backslashes (863f82a), closes #126
- update: skip deprecated versions (7e87a0f), closes #292
14.0.0-alpha.24 (2025-11-04)
14.0.0-alpha.23 (2025-09-29)
- github: revert actions update (00afd9d)
14.0.0-alpha.22 (2025-09-29)
- groups: add sameMinor policy (1b1d5cb)
- cargo: update dependencies (d4c9f93)
- cargo: update dependencies (34387d8)
- cargo: update dependencies (c40a0e3)
- npm: update dependencies (99b2e93)
14.0.0-alpha.21 (2025-09-14)
- cargo: update dependencies (83761e6)
- update: add timeouts to npm registry client (1f3fb3e), closes #291
- update: exclude unpublished versions (8411a77), closes #299
14.0.0-alpha.20 (2025-09-11)
- cargo: update dependencies (4d6c836)
- format: return exit code 0 when formatting files (57f05d1)
- npm: update dependencies (6a10f00)
- cargo: remove dhat dependency (548e9bd), closes #294
- core: optimise regex dependency (c9d454c)
- core: optimise tokio dependency (c9b5075)
- core: remove icu dependency (c6d48b5)
14.0.0-alpha.19 (2025-08-02)
- cargo: optimise binary for file size and not speed (07ce2c5), closes #294
- cargo: remove openssl dependency (99cdf35), closes #294
- core: optimise version specifier parsing (86c0fa7)
14.0.0-alpha.18 (2025-07-05)
14.0.0-alpha.17 (2025-06-29)
14.0.0-alpha.16 (2025-06-22)
- config: locate config in JS/TS rcfiles correctly (f2c8eb3)
- core: only create client when running update (73d9e26)
- core: optimise assigning instances to groups (8074cc7)
14.0.0-alpha.15 (2025-06-21)
- cargo: update dependencies (d9d8467)
- config: improve logging and error handling when discovering rcfile (e469284)
- core: move tsx from peers to dependencies (40ab6e5)
- schema: ensure typescript types and json schema are up to date (db8b6f6), closes #281
14.0.0-alpha.14 (2025-06-15)
- core: complete removal of banned custom types (3641fa4)
- cargo: update dependencies (201806f)
- cargo: update icu to v2 (8f9e82b)
- npm: update dependencies (9192ed6)
14.0.0-alpha.13 (2025-06-08)
- cli: use clearer hints for option values (4b0afb4)
- update: support updating @jsr/** dependencies (236a7d1), closes #249
- cargo: update dependencies (40a61c7)
- npm: update dependencies (e695d13)
- npm: update dependencies (6655910)
14.0.0-alpha.12 (2025-05-05)
14.0.0-alpha.11 (2025-04-27)
- cli: add a 'none' option to --show (6776a78)
- cli: tidy output and improve consistency (89eccc2), closes #263
- update: rewrite syncpack update for v14 (f11d741), closes #276 #210 #196 #190 #175
14.0.0-alpha.10 (2025-02-11)
14.0.0-alpha.9 (2025-02-10)
14.0.0-alpha.8 (2025-02-10)
- cli: read --dry-run option correctly (865edaf)
14.0.0-alpha.7 (2025-02-09)
- cli: add --dry-run option (86505a0)
- cli: improve readability of lint output (df4e08c)
- config: exit 1 when a dependency type is not found (66d043e), closes #234
14.0.0-alpha.6 (2025-02-09)
- core: update semver in git urls, aliases etc (b81c7cd), closes #213
- core: write a new specifier parser (5293089), closes #261
- cargo: update dependencies (67237b6)
- core: fix cli filters regression in 2340ea9a (7ac8847)
- core: workaround package.json files with no name (c3f5298), closes #261
14.0.0-alpha.5 (2025-02-05)
14.0.0-alpha.4 (2025-02-05)
- cli: reveal invalid instances by default (315cf3c)
- pnpm: consider workspace protocol valid by default (5df8b5f), closes #252
- cargo: update syncpack version in cargo.toml (e06c640)
14.0.0-alpha.3 (2025-02-05)
- cli: change approach to locating rcfile (4cf7da5), closes #253
- pinned: workspace:* was wrongly marked as pin mismatch (87975b7)
- types: allow additional customTypes properties (a969095), closes #255
14.0.0-alpha.2 (2025-02-04)
14.0.0-alpha.1 (2024-11-01)
14.0.0-alpha.0 (2024-11-01)
- core: migrate to rust (a37e52e)
13.0.0 (2024-08-25)
- engines: Changed
engines.nodefrom>=16to>=18.18.0.
minimatch@10 was updated in syncpack@12.4.0 which required node@>=20 and
caused issues in some projects.
This change adds a local linter to verify that the node engines of syncpack's dependencies all satisfy syncpack's own node engine. Using this linter found that the minimum node engine of all of syncpack's dependencies is v18.18.0.
- core: The commands
fix-mismatches,set-semver-ranges,prompt, andupdatewill no longer result in package.json files being formatted. This was a side effect ofJSON.parseandJSON.stringifybeing used to read and write to disk.
From this version, only specific changes are applied. To preserve the previous
behaviour, run syncpack format afterwards to apply fixes to formatting should
they be needed.
- engines: ensure correct required node version (fed04e4), closes #237
- npm: remove unused peer dependencies (aac4e24), closes #180 #181
- npm: run pnpm update (f1e6ce2)
12.4.0 (2024-07-24)
- config: add $schema property to types (ee54fd7), closes #200 #207 #236
- format: use localeCompare for sorting (e8c9bd3), closes #206 #214
- npm: apply breaking changes after updates (c2a7744)
- npm: update dependencies (bbf2cd9)
12.3.3 (2024-06-24)
12.3.2 (2024-04-24)
12.3.1 (2024-04-21)
- cli: fix clashing shorthand option names (3823825)
- core: switch to ESM & update dependencies (b02c421)
- npm: update dependencies (90e7d70)
- update: apply update to every outdated instance (a1c7270)
12.3.0 (2023-12-30)
- format: sort .exports, expose more config (6cd7960), closes #142
- lint: check files are formatted (eda4dbb), closes #102 #3
12.2.0 (2023-12-30)
- config: improve dependencyTypes intellisense (9c73dc5)
- core: add specifier type for * & latest (e0cb0ef), closes #174
- groups: target instances by specifier type (9403c3c), closes #163
- npm: update dependencies (2315227)
12.1.0 (2023-12-29)
- local: allow missing .version if not depended on (419a254), closes #183
- workspace: add support for workspace:^ (45f1731), closes #182
12.0.1 (2023-12-26)
12.0.0 (2023-12-24)
12.0.0-alpha.1 (2023-12-23)
- effect: apply breaking changes after update (2ea9a79)
- npm: update dependencies (ce80ea5)
- npm: update dependencies (f7c5382)
12.0.0-alpha.0 (2023-11-05)
- cli: throw if command is not found (0608605)
- core: broaden version specifier support (46a0143), closes #161 #162 #157
11.2.1 (2023-08-14)
- config: add a json schema (d35ace5), closes #146 #147
- depTypes: handle '!peer' and '**' (06f2e88)
- depTypes: rename 'workspace' to 'local' (463c936), closes #154
- npm: update dependencies (c8a5cab)
10.9.3 (2023-07-31)
- node: support >=16 (ea6cacf), closes #148
- versions: support npm: alias protocol (2a7ef86), closes #151
10.7.3 (2023-07-03)
10.7.2 (2023-07-02)
- cli: add command to update dependencies (1c1be99)
- npm: update dependencies (bf432a7)
10.6.1 (2023-06-18)
10.5.1 (2023-06-04)
- cli: add prompt to fix unsupported mismatches (296fad5)
- format: sort bin property alphabetically (f7c87a8)
- groups: manage intersecting range versions (96d6c6d)
- cli: add missing syncpack-lint binary (ae265cb)
10.2.0 (2023-06-03)
10.1.0 (2023-05-29)
10.0.0 (2023-05-28)
- core: -
fix-mismatcheswill now exit with a status code of 1 if there are mismatches among unsupported versions which syncpack cannot auto-fix.
- Although they are still not auto-fixable, unsupported versions which were previously ignored are now acknowledged, which may introduce mismatches which previously would have been considered valid.
- This release was also a huge rewrite of Syncpack's internals and, while there is a large amount of tests, some scenarios may have been missed.
- If you run into any problems, please create an issue.
- core: rewrite core architecture (dc9355f), closes #124 #124 #130 #131 #130 #131 #109 #114 #125 #114 #111 #132 #48 #3
- npm: update typescript (2c5cd7f)
9.8.6 (2023-04-23)
- config: prevent default source overriding rcfile (1d6a4ba), closes #123
- npm: update minor dependencies (91f4967)
9.8.4 (2023-02-21)
9.7.4 (2023-02-19)
- engines: increase node from 10 to 14 (603f058)
- groups: handle long and multi-line labels (ecc58ff)
- semver: recognise ^6, >=5 etc as valid (be637f0), closes #122
- versionGroups: add optional snapTo property (fd0edb6), closes #87
- imports: skip barrel files where possible (1ee2776)
9.3.2 (2023-02-17)
- groups: add optional label to semver/version groups (ff466af), closes #118
- groups: output groups in order they're defined (88950f1), closes #120
9.1.2 (2023-02-16)
9.0.2 (2023-02-15)
- options: fix --source regression in 9.0.0 (379409f), closes #116
- semver: fix false positive for workspace mismatches (4f696c5)
9.0.0 (2023-02-14)
-
custom: 1. The following options were replaced in syncpack@9.0.0:
-p, --prod include dependencies -d, --dev include devDependencies -P, --peer include peerDependencies -R, --resolutions include resolutions (yarn) -o, --overrides include overrides (npm) -O, --pnpmOverrides include overrides (pnpm) -w, --workspace include locally developed package versions
Instead use the new --types option like so:
--types dev,prod,peer
- In .syncpackrc, the following options were replaced:
"dev": true, "overrides": true, "peer": true, "pnpmOverrides": true, "prod": true, "resolutions": true, "workspace": true,
Instead use the new dependencyTypes array like so:
"dependencyTypes": ["dev", "prod", "peer"]
- custom: support custom version locations (2cd34fd), closes #112 #113
- fix-mismatches: remove any empty objects (a279e56)
8.5.14 (2023-02-07)
- cli: tidy log output and make it more consistent (cb58070)
- npm: update dependencies (f2c0322)
- npm: update dependencies (3ec1361)
- output: remove console.log in readConfigFileSync (1c51366), closes #106
8.4.11 (2022-12-01)
- semver-ranges: fix regression in 8.4.10 {lint,set}-semver-ranges (5bce1d8)
8.4.10 (2022-11-23)
- groups: add support to ignore dependencies (f96df8f)
- lint-ranges: remove empty groups from output (fa6db49)
8.3.9 (2022-10-28)
- semver: add support for setting '*' (779772b)
8.3.8 (2022-10-28)
- npm: update dependencies (6311999)
- pnpm: fix regression affecting --pnpmOverrides (6a782f9), closes #94
- set-semver-ranges: handle 'workspace' type (2134658), closes #84
8.2.5 (2022-10-28)
8.2.4 (2022-06-25)
- eol: detect line endings when writing (7e61f5c), closes #76
- output: better explain mismatch reasons (45e0cf1), closes #65 #77 #79
- npm: update dependencies (1bdf0c7)
- npm: update dependencies (34c5d68)
- output: edit log output and colours (3623c41)
- workspace: find missed mismatches against workspace versions (25c1836), closes #66
8.0.0 (2022-05-31)
- pnpm: The
--overridesoption delivered in 6.0.0 was originally intended to support pnpm, but erroneously read from the.overridesproperty of package.json files and not.pnpm.overrides.
However, npm now also has an .overrides property to support the same
functionality for users of npm.
From this release, the --overrides option of syncpack now refers to
npm overrides. Pnpm users should change to using the new
--pnpmOverrides option instead.
7.2.2 (2022-05-29)
7.2.1 (2022-05-02)
- npm: update dependencies (b9a9f5d)
7.1.0 (2022-05-01)
7.0.0 (2022-04-27)
- cli: If a package developed in your Monorepo depends on another package developed in your Monorepo, syncpack will now fix the installed version of the dependent to match the actual version from the package.json file of the local package.
You can disable this functionality by setting "workspace": false in
your .syncpackrc config file, or by omitting the new --workspace
option when using --dev, --prod etc to define which dependency types
you wish to include.
6.2.1 (2022-04-12)
6.2.0 (2022-01-03)
- groups: target specific dependency types (565c1e7)
6.1.0 (2022-01-03)
6.0.0 (2022-01-01)
- core: Dependencies defined within the
resolutionsandoverridesfields are now processed by syncpack and are enabled by default. To exclude these new fields you will need to define only the fields you do want to process, either in your configuration file:
{
"dev": true,
"peer": true,
"prod": true
}or via the command line:
syncpack list --dev --peer --prod
- core: add glob support and semver range rule groups (787757c)
- npm: update dependencies (fdef0a2)
5.8.15 (2021-08-08)
- npm: update dependencies (aea1f37)
5.8.14 (2021-08-01)
- cli: apply breaking change from commander (a61d384)
- format: write files if only whitespace changes (f38ea40), closes #54
5.8.12 (2021-08-01)
- npm: update dependencies (91254f6)
5.7.11 (2021-01-29)
- npm: update dependencies (5531da6)
5.6.10 (2020-09-17)
- cli: use defaults when source is empty array (c2f6199)
- core: support multiple version groups (bfd12b4), closes #43
- list: display mismatches from version groups (43ba18d)
5.6.7 (2020-08-30)
- npm: update dependencies (2e3ea3b)
5.5.6 (2020-08-23)
- core: expose format configuration (4f74d9a), closes #30
- core: sort resolutions field a-z (f76a127), closes #34
- core: support yarn workspaces config as object (34eceaf), closes #33
5.2.5 (2020-08-22)
- core: add support for config files (cfd5df3)
- npm: update dependencies (19ad510)
5.1.4 (2020-08-02)
- npm: update dependencies (f2cac6a)
5.0.3 (2020-06-19)
- format: leave sort order of "files" array unchanged (1bd584f), closes #35
- npm: update dependencies (9e0bd7e)
5.0.1 (2020-02-16)
- npm: engines.node has been increased to >=10 because semver@7.1.1 is a hard dependency of syncpack and requires node >=10
- core: include root package.json when reading yarn & lerna config (a7875cb)
- npm: update dependencies (5fdcc7b)
4.5.5 (2020-01-19)
- npm: update dependencies (1776b5f)
4.5.4 (2019-07-16)
4.5.3 (2019-06-17)
- npm: update dependencies (10834a9)
4.5.2 (2019-05-14)
4.4.2 (2019-05-06)
- filter: --filter is a string, not a boolean (5587f2b)
4.4.1 (2019-04-29)
4.3.1 (2019-02-03)
- fix-mismatches: output which files are (un)changed (a79b078)
- format: output which files are (un)changed (3a08a7a)
- list: sort output alphabetically (f61bde4)
4.0.1 (2019-01-14)
4.0.0 (2019-01-11)
- node: Support Node.js 8.x or newer, Transitive Dependency ip-regex@3.0.0 supports node ">=8".
3.5.2 (2019-01-07)
- core: improve handling of non-semver versions (9e1176a), closes #14
- npm: update dependencies (09d9f04)
3.5.0 (2018-10-29)
- cli: improve --help output and examples (dfe6274)
3.4.0 (2018-10-28)
3.3.0 (2018-10-28)
- cli: specify dependency types as options (ec5ef6b), closes #10
- cli: specify indentation as option (8b408bd), closes #12
- format: sort contributors alphabetically (935ffcf)
3.0.0 (2018-08-25)
- bin: Previously the location of package.json files could be overridden like so:
syncpack list './package.json' './packages/*/package.json'
This is now done using a repeatable --source option:
syncpack list --source './package.json' --source './packages/*/package.json'
This change is to make way for new commands which will also require an
overridable --target option.
- bin: override package locations using repeatable --source options (5dbcfd4)
- list-mismatches: return exit code on finding mismatches (06958c6)
2.0.1 (2018-04-29)
- core: ensure pattern overrides are read (7513ba5)
2.0.0 (2018-04-29)
- core: --packages option replaced with variadic arguments
1.3.2 (2018-04-28)
- core: add set-semver-ranges command (4d206b9)
1.2.2 (2018-02-10)
1.0.2 (2018-02-02)
1.0.1 (2018-02-02)
- core: correct paths to binaries (5682cd6)
1.0.0 (2018-02-02)
- core: The previous commands have been replaced.
- core: add fix-mismatches command (4793f1f)
- core: add list command (3b29176)
- core: add list-mismatches command (735ad2b)
- core: update command line API (de8dcb2)
- core: correctly check a file is package.json (d1da609)
- core: handle missing dependency maps (372aa68)
- core: handle semver ranges containing 1.x.x (a0f8f56)
0.3.1 (2017-08-23)
- copy-values: write results to disk (a641de4)
0.3.0 (2017-08-22)
- cli: add copy-values command (b51a2c9)
0.2.1 (2017-08-20)
- core: update dependencies, fix lint warnings (a65eef7)
0.2.0 (2017-08-20)
- sync: synchronise versions across multiple package.json (7d5848a)
0.1.0 (2017-08-18)
- cli: create scaffold cli (f6dada7)