Skip to content

v3.0.0

Compare
Choose a tag to compare
@somewhatabstract somewhatabstract released this 27 Dec 00:34
· 736 commits to main since this release

馃敆 CheckSync v3 is here! 馃帀

This is a major update as we've overhauled the architecture, fixed bugs in "glob" handling, dropped Node 10 support, and more.

Huge thanks to @kevinbarabash and @jeremywiebe for their contributions and feedback during development.

What's New

  • Configuration file support
    When using CheckSync on complex projects, the command line arguments can get a bit unwieldy. To help manage this complexity, CheckSync v3 now supports a .checksyncrc configuration file. By default, CheckSync will look for a configuration file named .checksyncrc or .checksyncrc.json based on the current working directory and the root marker location. However, you can specify it via the --config CLI option if you want something different.

    In addition, a JSON schema is included to document the configuration format and it is used to validate your configurations.

  • Overhauled architecture with more auto-fixes and exported API
    The CheckSync parsing, fixing, and output architectures have all been reworked to separate concerns and allow for a greater variety of fixes besides just updating a checksum. This has also fixed a number of bugs around correctly handling duplicate tags, outputting all parsing results when there are errors, and more. This also means CheckSync is no longer CLI only; a simple API is now exported to allow you to invoke CheckSync programmatically within your own Node programs (or even tests).

    This overhaul should also improve maintenance of the code, including adding new features. However, there is a performance hit and we have noted v3 is a little slower than v2. We're hoping to focus on improving performance in upcoming patches.

  • Improved JSON output
    The JSON output has been standardized so that it can represent the various errors and autofixes that we may want to describe. This means that a caller (such as an eslint rule) will have all the information required to highlight errors and provide autofixes within the JSON output. Together with the exported API, this should make integrating CheckSync into linters and other environments much easier.

  • Support for globs when specifying ignore files
    Using the --ignore-files CLI option, you can now specify .gitignore-style files from subdirectories using glob syntax.

  • Correct glob handling
    CheckSync v2 was using the .gitignore-style of glob handling which was not really correct. CheckSync v3 treats globs that it receives the way it should.

Changelog

Features

Fixes

Maintenance

General

Dependency Updates by @dependabot

Full Changelog: v2.3.0...v3.0.0