gplint
Version:
A Gherkin linter/validator written in Javascript.
146 lines (121 loc) • 6.06 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.3.0] - 2025-02-10
### Internal
### 🚀 New Feature
* Autofix improvements by @Nyaran in https://github.com/gplint/gplint/pull/763
* Better performance on autofix
* Preserve the used EOL type on files
* Pickles are reloaded after fix are applied
* Additionally, some rule tweaks added:
* `indentation`:
* Allow to define spaces, tabs or both as valid indentation character (autofixable)
* Some performance improvements
* `no-trailing-spaces` :
* Some performance improvements
* Add [`max-keywords`](https://gplint.github.io/docs/rules/max-keywords) rule by @Nyaran in https://github.com/gplint/gplint/pull/791
## [2.2.0] - 2024-12-08
### Internal
* Create documentation site https://gplint.github.io by @Nyaran in #574
* Add PR labels for release by @Nyaran in #694
## [2.1.0] - 2024-09-29
### 🚀 New Feature
* feature: auto fix problems by @lucas-it in https://github.com/gplint/gplint/pull/672
* chore: Mark fixable rules on README.md by @Nyaran in https://github.com/gplint/gplint/pull/673
## [2.0.0] - 2024-07-07
### 💥 Breaking Change
* This package is now pure ESM. It should not affect if using gplint as a cli tool, if you have problems with integration, please, first [read this](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c).
* Drop Node 14 and 16 support.
* Level "on" was deprecated on v1, and now was removed. Replace it with "error" or "warn" on your .gplintrc file.
* On rule `required-tags` the `tags` was deprecated, now was removed. Replace it with `scenario` the use in the same way.
### 🚀 New Feature
* Support to load custom rules with mjs and cjs extensions (and TypeScript equivalents).
* Support latest Node 20 (not limited to 20.4 anymore) and 22.
* Rules improvements:
* Support [Rule node](https://cucumber.io/docs/gherkin/reference/#rule) for all rules
* Rule `no-dupe-scenario-names` has two new configurations, `in-rule` and `in-rule-compile`.
* Improve `no-restricted-patterns`:
* Support Example, ExampleHeader and ExampleBody.
* Support DocString and DataTable from Steps with it own configuration key (check README.md).
### 🐛 Bug Fix
* Fix no-partially-commented-tag-lines rule, detecting comments separated from tag (configurable).
### 🏠 Internal
* Update eslint config to use flat config.
* Update eslint to v9.
* Add restrictive Code Style with eslint.
* Replace [istanbuljs/nyc](https://github.com/istanbuljs/nyc) with [c8](https://github.com/bcoe/c8).
* Increased code coverage.
* Replaced "commander" with "yargs".
* Improve linting and strictNullChecks
## [1.5.1] - 2023-07-17
### Fixed
* Fix load default config file if argument is not specified. by @Nyaran in https://github.com/gplint/gplint/pull/440
## [1.5.0] - 2023-07-15
### Added
* Support custom rules in TypeScript by @Nyaran in https://github.com/gplint/gplint/pull/434
### Changed
* Improve rule no-restricted-patterns allowing to restrict words on steps by @AlexisArteaga13 in https://github.com/gplint/gplint/pull/433
* Improve rule keywords-in-logical-order allowing to detect missing keywords by @AlexisArteaga13 in https://github.com/gplint/gplint/pull/438
## [1.4.1] - 2023-03-14
### Fixed
* Fix table-align rule when scaped pipes are present (by @devilj) #363.
* Fix test workflow to use properly different node versions. #367
## [1.4.0] - 2023-03-04
### Changed
* Escape pipes in table cells (by @devilj) #357.
* Run tests on node 18 and 19.
* Migrate project to TypeScript.
## [1.3.0] - 2022-03-07
### Added
* Added rules `allow-all-caps` & `allow-all-lowercase` #123.
* Support warn/error levels for rules. (on is assumed as error). #66
* New cli parameter, `--max-warnings` to configure exit code based on number of warnings. #66
* Added rule `related-tags`.
### Changed
* Migrated code and tests to pure babel.
* Tests now use sources instead of compiled files.
* Replace mocha-sinon package with direct use.
* Moved dist to build (just bc personal preference).
* Apply language tag to code blocks on README.
* Babel/nyc tweaks.
### Fixed
* Fix `undefined` use on `availableConfig`.
## [1.2.1] - 2021-11-03
### Added
* (internal) Created method `getNodeForPickle` to map nodes and pickles.
### Fixed
* Fix and improve `required-tags` using global.
## [1.2.0] - 2021-11-01
### Added
* Added rule `max-tags-lines`.
* Run tests on node 17.
* Added rule `table-align`.
### Changed
* Improve packaging discarding `.npmignore` and using `files` property on `package.json`.
* Improve `indentation` to support `examples tag`.
* Improve `required-tags` rule.
* Add options to set required tags for each level.
* Add option to define global tags, to be defined on any level.
* Add options to extend rule and example tags to Scenario when that levels are not present for that Scenario.
* Deprecated the `tags` option, should be replaced by `scenario`.
* Improved tag checks allowing to force an expression is a RegExp (should be wrapped between slashes), and matching tag completely on string match.
* Allow subset array to include optional required tags.
* Improve formatters:
* xunit: Wrap with testsuites object and add count attribute
* stylish: Add error count to final output
### Removed
* Run tests on node 15.
## [1.1.0] - 2021-10-01
### Changed
* Improve `no-unused-variables` to handle spaces on usage.
* Improve `file-name` on `camelCase` to allow acronyms.
## [1.0.0] - 2021-09-27
### Changed
* Rename project to [gplint](https://github.com/gplint/gplint).
* Improve console output when using stylish, adding column number and error level.
* Improve rule `no-dupe-scenario-names` allowing to validate scenario names after replace the example variables.
* Update Gherkin to the latest version.
## [PRE]
All the previous work from https://github.com/vsiakka/gherkin-lint