From 29369baeb8407d372a246f5c22baaa98f1e48a83 Mon Sep 17 00:00:00 2001 From: David Goss Date: Sat, 19 Nov 2022 10:41:28 +0000 Subject: [PATCH 1/3] Add CONTRIBUTING.md (#111) --- CONTRIBUTING.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..cb499446 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,37 @@ +# Contributing + +If you want to make changes to the schema, start in the `jsonschema` directory where you can edit the JSON files. + +Some guidelines for making schema changes: + +- Use the most appropriate data type +- Follow existing naming conventions (camelCase) +- Add new fields last to minimise impact on consuming code +- Probably don't add a new field as `required` - this will make the new code unable to read existing messages +- Ideally add a description to any new fields + +If you need some advice, drop into the `#committers` channel on the [Cucumber Slack](https://cucumberbdd.slack.com) and ask. + +## Generating code + +The code for various languages is generated from the JSON files. You can clean and regenerate the code with: + +```shell +make clean-all generate-all +``` + +This requires various tooling to be installed on your computer, including Ruby and Node.js. If you're missing some of it, you might find it easier to run a Docker container that has everything: + +```shell +docker run --volume $PWD:/app --user 1000 -it cucumber/cucumber-build:latest bash +``` + +You can then run the same command as noted previously. + +### New files + +If you're adding a new file to the `jsonschema` directory, you'll need to add a reference to it near the top of the `Makefile` at the root in order for it to be included in the code generation. + +## Tests + +Some of the language-specific diretories contain some smoke tests to ensure (de)serialization, validation etc are working right. If you happen to change one of the messages that's constructed by these tests, you may need to update them. If you're not sure, raise a draft PR and see what happens in CI. \ No newline at end of file From deaee391d6fe919430d5163ae1b3880d5f9e2c70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 22 Nov 2022 10:44:43 +0100 Subject: [PATCH 2/3] Update dependency com.fasterxml.jackson:jackson-bom to v2.14.1 (#112) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- java/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/pom.xml b/java/pom.xml index 13b8c4ad..f7429f9c 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -38,7 +38,7 @@ com.fasterxml.jackson jackson-bom - 2.14.0 + 2.14.1 pom import From 55cefb03085647c7d30d1cc9ef43243669e8c256 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 24 Nov 2022 14:57:20 +0000 Subject: [PATCH 3/3] docs: update Slack link --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cb499446..0880d418 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ Some guidelines for making schema changes: - Probably don't add a new field as `required` - this will make the new code unable to read existing messages - Ideally add a description to any new fields -If you need some advice, drop into the `#committers` channel on the [Cucumber Slack](https://cucumberbdd.slack.com) and ask. +If you need some advice, drop into the `#committers` channel on the [Cucumber Slack](https://cucumber.io/community#slack) and ask. ## Generating code @@ -34,4 +34,4 @@ If you're adding a new file to the `jsonschema` directory, you'll need to add a ## Tests -Some of the language-specific diretories contain some smoke tests to ensure (de)serialization, validation etc are working right. If you happen to change one of the messages that's constructed by these tests, you may need to update them. If you're not sure, raise a draft PR and see what happens in CI. \ No newline at end of file +Some of the language-specific diretories contain some smoke tests to ensure (de)serialization, validation etc are working right. If you happen to change one of the messages that's constructed by these tests, you may need to update them. If you're not sure, raise a draft PR and see what happens in CI.