syncpack

Consistent dependency versions in large JavaScript Monorepos.

MIT License

Downloads
2.5M
Stars
1.3K
Committers
27

Bot releases are visible (Hide)

syncpack - 12.4.0 Latest Release

Published by JamieMason 3 months ago

12.4.0 (2024-07-24)

Summary

Aside from updating npm dependencies, all changes are pull requests by @ardelato, @evaliyev, @mctrafik, and @chaseholdren – thanks for contributing.

Features

  • groups: handle negation for packages option (0d6b608), closes #232

Bug Fixes

syncpack - 12.3.3

Published by JamieMason 4 months ago

12.3.3

  • fix(npm): use types export in package.json #218 #219
  • chore(github): update actions 20ac0cd
syncpack - 12.3.2

Published by JamieMason 6 months ago

12.3.2 (2024-04-24)

Reverts

syncpack - 12.3.1

Published by JamieMason 6 months ago

12.3.1 (2024-04-21)

Bug Fixes

  • 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)
syncpack - 12.3.0

Published by JamieMason 10 months ago

12.3.0 (2023-12-30)

Features

  • format: sort .exports, expose more config (6cd7960), closes #142
  • lint: check files are formatted (eda4dbb), closes #102 #3
syncpack - 12.2.0

Published by JamieMason 10 months ago

12.2.0 (2023-12-30)

Features

  • config: improve dependencyTypes intellisense (9c73dc5)
  • core: add specifier type for * & latest (e0cb0ef), closes #174
  • groups: target instances by specifier type (9403c3c), closes #163

Bug Fixes

  • npm: update dependencies (2315227)
syncpack - 12.1.0

Published by JamieMason 10 months ago

12.1.0 (2023-12-29)

Features

  • config: support async syncpack.config.mjs (7216ded), closes #164

Bug Fixes

  • local: allow missing .version if not depended on (419a254), closes #183
  • workspace: add support for workspace:^ (45f1731), closes #182
syncpack - 12.0.1

Published by JamieMason 10 months ago

12.0.1 (2023-12-26)

Bug Fixes

syncpack - 12.0.0

Published by JamieMason 10 months ago

12.0.0 (2023-12-24)

See also the release notes for 12.0.0-alpha.0 and 12.0.0-alpha.1 for all changes made in latest since 11.2.1.

Features

Bug Fixes

  • cli: make status codes easier to read (e17b696), closes #172
syncpack - 12.0.0-alpha.1

Published by JamieMason 10 months ago

12.0.0-alpha.1 (2023-12-23)

Bug Fixes

  • effect: apply breaking changes after update (2ea9a79)
  • npm: update dependencies (ce80ea5)
  • npm: update dependencies (f7c5382)
syncpack - 12.0.0-alpha.0

Published by JamieMason 12 months ago

12.0.0-alpha.0 (2023-11-05)

Bug Fixes

  • local: do not replace version with workspace:* (d8a4eaa)
  • npm: update dependencies (f016552)

Features

  • cli: throw if command is not found (0608605)
  • cli: display an error code/reason for every kind of mismatch
  • cli: output a count of ignored instances
  • docs: huge documentation overhaul
  • groups: add support for $LOCAL keyword in config, Closes #161
  • groups: allow dependencies: ["**"] and packages: ["**"] to be omitted
  • list: add usage count next to each dependency in syncpack list, Closes #162
  • options: add support for --indent ‘\t’
  • update: group and filter npm updates by major, minor, patch etc
  • update: show more information while querying npm for updates
  • versions: add support for workspace:~ and workspace:*
  • versions: preserve semver group rules when fixing mismatches, Closes #157
  • versions: support npm:[email protected]
  • versions: support semver boundaries >=1.0.0 <=3.0.0
  • versions: support semver git tags git://github.com/user/project.git#0.3.0
  • versions: support semver tags 4.0.0-alpha.61

Breaking Changes

  1. semverRange has been deprecated in config files, if you'd like to define a global policy for semver ranges you can achieve this with a semver group.

    {
    -  "semverRange": "^",
    +  "semverGroups": [{ "range": "^" }]
    }
    
  2. There is no longer a default Semver Group. By default, version mismatches will be fixed while leaving the semver ranges as they were. This is intended to make it easier for new users to onboard, but it is recommended that you define Semver Groups yourself which match your project's requirements.

    See the Getting Started guide for a walkthrough on this.

Summary

This is the biggest syncpack release to date and has taken a couple of months to complete. Given the scale of the changes, it is an alpha release.

The tests have been rewritten to be easier to maintain and bugs were found along the way, so there will be other small improvements and bug fixes which I've lost track of that are not listed here.

Please give it a try in a local branch and submit an issue if you find any problems.

There is a brand new Getting Started guide and other new documentation which I encourage you to read.

Finally, if anyone reading this finds syncpack useful then please tell people about it – it's completely free and has been a ton of work.

syncpack - 11.2.1

Published by JamieMason about 1 year ago

11.2.1 (2023-08-14)

Bug Fixes

  • npm: update dependencies (c8a5cab)

Features

Breaking Changes

In command line options:

- syncpack list --types prod,workspace
+ syncpack list --types prod,local

In configuration files:

- dependencyTypes: ['prod', 'workspace'],
+ dependencyTypes: ['prod', 'local'],

Documentation Changes

syncpack - 10.9.3

Published by JamieMason about 1 year ago

10.9.3 (2023-07-31)

Features

syncpack - 10.7.3

Published by JamieMason over 1 year ago

10.7.3 (2023-07-03)

Bug Fixes

syncpack - 10.7.2

Published by JamieMason over 1 year ago

10.7.2 (2023-07-02)

Bug Fixes

  • npm: update dependencies (bf432a7)

Features

  • cli: add command to update dependencies (1c1be99)
syncpack - 10.6.1

Published by JamieMason over 1 year ago

10.6.1 (2023-06-18)

Features

  • Closes #111 – Throw when config is invalid, instead of defaulting
  • Closes #132 – Show more detailed information about errors and warnings
  • Closes #139 – Handle !negated globs
  • Closes #140 – When linting semver ranges, warn on non-semver versions but don't error
syncpack - 10.5.1

Published by JamieMason over 1 year ago

10.5.1 (2023-06-04)

Summary

  • Adds a new syncpack prompt command which displays a series of prompts to fix version mismatches which syncpack cannot fix automatically.
  • Adds a new Same Range Version Group which relaxes syncpack to ensure that all versions have semver ranges which all satisfy each other, instead of the default behaviour of them having to be identical.

Bug Fixes

  • cli: add missing syncpack-lint binary (ae265cb)

Features

  • cli: add prompt to fix unsupported mismatches (296fad5)
  • format: sort bin property alphabetically (f7c87a8)
  • groups: manage intersecting range versions (96d6c6d)
syncpack - 10.2.0

Published by JamieMason over 1 year ago

10.2.0 (2023-06-03)

Features

  • cli: change output of lint command (765376c), closes #134
syncpack - 10.1.0

Published by JamieMason over 1 year ago

10.1.0 (2023-05-29)

Features

syncpack - 10.0.0

Published by JamieMason over 1 year ago

10.0.0 (2023-05-28)

Summary

  • When using the workspace dependency type, packages installing that dependency no longer have to exactly match the version property of the package.json of origin.If the version or version range used by every dependent package matches, it is considered valid.
  • JavaScript config files now have support for TypeScript IntelliSense.See https://jamiemason.github.io/syncpack/config-file#typescript-intellisense.
  • Unsupported versions can now at least be managed via pinVersion, where previously anything which was not valid semver would be ignored.
  • TypeScript IntelliSense support helps catch invalid config, but more work is needed to display useful error messages at runtime.
  • Syncpack's internals are now better organised, so providing a Node.js API and general lint and fix CLI commands are now closer to being released.

Bug Fixes

BREAKING CHANGES

  • core:
    • fix-mismatches will 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.
Package Rankings
Top 1.62% on Npmjs.org
Badges
Extracted from project README
support on ko-fi NPM version NPM downloads Build Status
Related Projects