UNPKG

gplint

Version:

A Gherkin linter/validator written in Javascript.

146 lines (121 loc) 6.06 kB
# 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