Skip to main content

Contributing

Contributions are welcome, from a bug report to a new trait. Report a bug or suggest a change in the issue queue. Send changes as pull requests against main, or against 3.x for a fix to the 3.x LTS release.

Where the rules live​

CONTRIBUTING.md holds the rules for code in this repository: how a step reads, how methods and classes are named, what each layer may reach, and how the tests are organized. Tests, linters and docs.php enforce most of them, so read the sections your change touches before you start.

It also covers the local environment, running the tests and continuous integration.

What lives where​

  • src/ - the package: the backends, the Behat extension, the 3 contexts and the step and helper traits.
  • tests/ - the unit, kernel and Behat suites, and the fixture Drupal sites for Drupal 11 and 12 that all 3 suites run against.
  • docs.php - the generator behind the Web steps, Drupal steps, Web helpers and Drupal helpers pages and the generated tables in Configuration.
  • docs/ - this site, with its pages in docs/content/.
  • scripts/ - the fixture site provisioning, the coverage tools and the layer and trait linters.
  • .claude/skills/ - the AI agent skills kept in this repository: migrate-behat-steps for consuming projects, and update-architecture-docs for maintainers.

See also​

  • Documentation - how these docs are written, generated, checked and published.
  • Architecture - how the layers fit together, with UML diagrams.