Releases: somewhatabstract/checksync
v6.0.0
Major Changes
-
3b4b35d: - Node 20 or higher required. Support for Node 16 and Node 18 is deprecated.
- Eslint updated to version 9. For maintainers of this repo, this means some rules aren't working properly as they don't yet support the new flat configuration format of Eslint 9. See the configuration file for details.
- Babel, jest, typescript, and various other dependencies have been updated to their latest versions.
- Security vulnerabilities have been addressed with resolutions (https://github.com/somewhatabstract/checksync/security/dependabot/17, https://github.com/somewhatabstract/checksync/security/dependabot/18)
v5.0.5
v5.0.4
v5.0.3
v5.0.2
v5.0.1
Note: There is no v5.0.0. v5 of Checksync uses a new automated publishing setup and that didn't work for the v5.0.0 release. The changes that were in v5.0.0 have been listed below with the v5.0.1 changes.
Major Changes
-
6b561be: Migrate to TypeScript
Although there are no functional changes here, we are bumping the major version since changing our static types are provided from Flow to TypeScript could break some folks development setups.
-
14bbc5f: Working directory updates
- The location of the configuration file is now used as the current working directory, if a configuration file is used. This means that globs are resolved relative to the configuration file, not the current working directory of the process launching checksync, which makes for a more deterministic behavior for
folks trying to define and use their config files. - A
--cwd
argument has been added for specifying the working directory in cases where a configuration file is not used, or the configuration file discover needs to start in a place other than where checksync is invoked. If a configuration file is loaded, the location of that file takes precedence.
- The location of the configuration file is now used as the current working directory, if a configuration file is used. This means that globs are resolved relative to the configuration file, not the current working directory of the process launching checksync, which makes for a more deterministic behavior for
-
95d1a29: Update gitignore support to support full range of syntax. We now use the
ignore
package to support the gitignore file syntax. New verbose logging has been added to help debug ignore file issues, too.
Patch Changes
v3.0.1
This fixes the regex in the config file JSON schema so that it supports paths that include files like .gitignore
. 🤦🏻♂️
Full Changelog: v3.0.0...v3.0.1
v3.0.0
🔗 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
- Allow for ignore file globs by @somewhatabstract in #731
- Support checksyncrc files by @somewhatabstract in #812
- Improvements to output logic by @somewhatabstract in #849
- Fix handling of cli arg that is symlink by @jeremywiebe in #659
Fixes
- Make sure fixes are applied to the correct lines by @somewhatabstract in #847
- Turn directories into globs to simplify usage by @somewhatabstract in #848
Maintenance
General
- Add support for Node16 and remove Node10 by @somewhatabstract in #670
- Remove dependabot badge by @somewhatabstract in #651
- Add codeql analysis by @somewhatabstract in #661
- Only run CodeQL on src code by @somewhatabstract in #668
Dependency Updates by @dependabot
- Bump ancesdir from 2.0.2 to 3.0.0
#733 - Bump babel-jest from 27.0.6 to 27.4.5
#734, #746, #751, #759, #766, #768, #772, #779, #785, #787, #820, #823, #832, #845 - Bump @babel/cli from 7.14.3 to 7.16.0
#655, #705, #742, #756, #803 - Bump @babel/core from 7.14.3 to 7.16.5
#653, #663, #706, #723, #743, #744, #778, #800, #843 - Bump @babel/eslint-plugin from 7.14.5 to 7.16.5
#842 - Bump @babel/eslint-parser from 7.16.3 to 7.16.5
#840 - Bump @babel/plugin-transform-react-jsx from 7.16.0 to 7.16.5
#837 - Bump @babel/preset-env from 7.14.4 to 7.16.5
#654, #679, #708, #720, #722, #741, #749, #777, #801, #810, #841 - Bump @babel/preset-flow from 7.13.13 to 7.16.5
#656, #804, #838 - Bump @babel/register from 7.13.16 to 7.16.5
#660, #729, #799, #839 - Bump chalk from 4.1.1 to 4.1.2
#718 - Bump eslint from 7.27.0 to 8.5.0
#647, #677, #693, #703, #719, #814, #828, #830, #852 - Bump eslint-plugin-flowtype from 5.7.2 to 7.0.0
#689, #710, #713, #721, #737, #739, #753, #757, #791 - Bump eslint-plugin-prettier from 3.4.1 to 4.0.0
#738 - Bump fast-glob from 3.2.5 to 3.2.7
#697 - Bump flow-bin from 0.152.0 to 0.168.0
#662, #681, #696, #704, #709, #725, #730, #740, #755, #760, #764, #774, #783, #790, #797, #807, #811, #815, #826, #827, #836, #844, #851 - Bump @hyperjump/json-schema from 0.17.2 to 0.18.3
#850 - Bump jest from 26.6....
v2.3.0
- Adds
--json
for outputting results as JSON - Adds
--version
for outputting current version ofchecksync
Thanks to @kevinbarabash for his work implementing JSON output.
v2.2.3
280d10c Update to [email protected] and update this to v2.2.3