To add a collaborator to this project you will need to use the Relish gem to add the collaborator via a terminal command. Soon you'll be able to also add collaborators here!More about adding a collaborator
Adding a New Gavel Implementation
- Fork the [gavel-spec][https://github.com/apiaryio/gavel-spec] repository.
- Assign new implementation-specific Cucumber tag (e.g.
Add the specification to your project:
- Add your forked repository as a git submodule to the directory where your Cucumber features live in your project.
- Setup your Cucumber test runner to only use the language tag relevant for your implementation (
- As you implement, tag features with your language tag. Do not forget to add Cucumber features for code examples in your language.
- Implement Cucumber step definitions (implementation-specific glue code between Cucumber steps and your code).
- Run Cucumber and see it failing.
- Implement scenarios in your code. Iteratively run Cucumber until the tests are passing.
- Once your implementation works and you have language-specific Cucumber features ready, you can send them back to upstream
gavel-specin a Pull Request. Don't forget to add your implementation to the list above.
- Once it gets merged, new npm package of
gavel-specwill be released. Then it's up to you if you prefer to add the specification to your project as git submodule of the upstream
gavel-specor if it's convenient for you to install it as npm dependency.
- Publish your project! Be sure to have it tested against the specification (e.g. by Travis CI)
If you get lost, don't hesitate to ask in issues or inspect [existing implementations][index.md#implementations].
Guidelines for Cucumber Tags
Untagged features and scenarios are considered mandatory in all implementations.
- @stable - Stable API or behavior, MUST be implemented
- @proposal - Proposal for stabilization, SHOULD be implemented
- @draft - Feature sketch, thoughts aggregation, MAY be implemented
Last published about 3 years ago by honzajavorek.