Skip to content

Monitor gherkin-lint maintenance status and evaluate alternatives #138

@hdamker

Description

@hdamker

Problem description

The validation framework uses gherkin-lint@^4.2.4 (currently 4.2.4, the latest release) for Gherkin/BDD test file linting. The package appears unmaintained — its core dependencies are deprecated and published under new package names:

npm warn deprecated gherkin@9.0.0: This package is now published under @cucumber/gherkin
npm warn deprecated cucumber-messages@8.0.0: This package is now published under @cucumber/messages
npm warn deprecated uuid@3.4.0: Please upgrade to version 7 or higher
npm warn deprecated glob@7.1.6: Old versions of glob are not supported

gherkin-lint works correctly with Node.js 24, so these are cosmetic warnings rather than functional issues. However, the package's maintenance state means no bug fixes or new Gherkin syntax support should be expected.

Possible evolution

No action needed now. Monitor periodically:

  1. New gherkin-lint releases or maintainer activity at timjroberts/gherkin-lint
  2. Community alternatives that could serve as a replacement (e.g., tools built on @cucumber/gherkin)
  3. Whether the deprecated transitive dependencies cause install failures in future npm versions

If an alternative emerges, the validation framework's gherkin engine adapter (engines/gherkin_adapter.py) is designed for easy tool swap — only the CLI invocation and output parsing need to change.

Alternative solution

  • Build a custom linter using @cucumber/gherkin (the maintained successor to gherkin@9)
  • Evaluate other community Gherkin linting tools if they emerge
  • Reduce scope to syntax validation only using @cucumber/gherkin parser (no style rules)

Additional context

gherkin-lint runs correctly on Node.js 24 in the validation framework CI pipeline. The linting rules it provides (indentation, no-empty-background, no-unnamed-features, etc.) are useful for CAMARA test file quality. Related: tooling#137 tracks Spectral CLI's similar deprecated dependency situation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BacklogImplementation not considered short-term, long-term evolution issueenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions