From 8d7c3935ad747e205c5594f003f8537ada47a649 Mon Sep 17 00:00:00 2001 From: Mattie Fu Date: Wed, 27 Sep 2023 11:36:01 -0400 Subject: [PATCH] chore: update contributing doc --- .github/PULL_REQUEST_TEMPLATE.md | 1 + CONTRIBUTING.md | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 80e82f54fa..8c1b47b066 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,6 +3,7 @@ Thank you for opening a Pull Request! Before submitting your PR, there are a few - [ ] Ensure the tests and linter pass - [ ] Code coverage does not decrease (if any source code was changed) - [ ] Appropriate docs were updated (if necessary) +- [ ] Rollback plan is reviewed and LGTMed Fixes # ☕️ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f91d37e135..3803aa5903 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -38,6 +38,8 @@ This project follows ## Running Tests +### Integration Tests + Bigtable integration tests can either be run against an emulator or a real Bigtable instance. The target environment can be selected by setting a maven profile. By default it is set to `bigtable-emulator-it` and other options are `bigtable-prod-it` and `bigtable-directpath-it`. @@ -70,6 +72,14 @@ mvn install -DskipUnitTests mvn install -DskipTests ``` +### Conformance Tests + +Bigtable Conformance Tests test the correctness of the client behavior and must be run for all code changes. +When adding a new feature, conformance tests must be run with the feature enabled. + +Refer to the [Test Proxy](https://github.com/googleapis/java-bigtable/tree/main/test-proxy#cbt-java-test-proxy) page +on how to run conformance tests. + ## Formatting the code To auto-format any code changes, run ``mvn com.coveo:fmt-maven-plugin:format``. @@ -78,4 +88,11 @@ To auto-format any code changes, run ``mvn com.coveo:fmt-maven-plugin:format``. Native Image testing is enabled for tests that follow a particular naming convention (`IT*` or `*ClientTest`). Unit tests that use Mockito or EasyMock have been excluded for the time being as they are not compatible with native -image compilation. \ No newline at end of file +image compilation. + +## Rollback plan + +A rollback plan is required for all new features. The rollback plan should include: + +1. How to disable this feature from the server side. +2. For features that are strictly client side, what the risks are, and what tests are done. \ No newline at end of file