Gherkin is an open source, community-driven project. If you'd like to contribute, feel free to do this, but remember to follow this few simple rules:
- Make your feature addition or bug fix,
- Always use the
master
branch as base for your changes (all new development happens inmaster
), - Add tests for those changes (please look into
tests/
folder for some examples). This is important so we don't break it in a future version unintentionally, - Commit your code, but do not mess with
CHANGELOG.md
, - Remember: when you create a Pull Request, always select
master
branch as target (done by default), otherwise it will be closed.
Make sure that you don't break anything with your changes by running:
composer test
We use automated tools to ensure that the code has a consistent style and is of good quality.
composer lint
Gherkin supports →40 different languages and you could add more! You might notice i18n.php
file in the root of
the library. This file is downloaded and autogenerated from
original cucumber/gherkin translations.
So, in order to fix/update/add some translation, you should send a Pull Request to the cucumber/gherkin
repository.
Behat\Gherkin
will re-download/regenerate translations from there before each release.
It might sound difficult, but this way of dictionary-sharing gives us the ability to migrate *.feature
files from
language to language and library to library without the need to rewrite/modify them - with the same (Gherkin) dictionary
used everywhere.