diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..485881382 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,35 @@ +We welcome contributions from the community. Please read the following guidelines carefully to +maximize the chances of your PR being merged. + +# Communication + +* Before starting work on a major feature, please reach out to us via [GitHub](https://github.com/envoyproxy/nighthawk) or [Slack](https://envoyproxy.slack.com/archives/CDX3CGTT9). We will make sure no one else is already working on it and ask you to open a GitHub issue. +* Small patches and bug fixes don't need prior communication. + +# Coding style + +* Coding style mirrors [Envoy's policy](https://github.com/envoyproxy/envoy/blob/master/STYLE.md) + +# Breaking change policy + +Both API and implementation stability are important to Nighthawk. Since the API is consumed by clients beyond Nighthawk, breaking changes to that are prohibited. + +# Submitting a PR + +* Generally Nighthawk mirrors [Envoy's policy](https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#submitting-a-pr) with respect to PR submission policy. +* Any PR that changes user-facing behavior **must** have associated documentation in [docs](docs) as + well as [release notes](docs/root/version_history.md). + +# PR review policy for maintainers + +* Generally Nighthawk mirrors [Envoy's policy](https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#pr-review-policy-for-maintainers) with respect to maintainer review policy. +* See [OWNERS.md](OWNERS.md) for the current list of maintainers. + +# DCO: Sign your work + +Commits need to be signed off. See [here](https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#dco-sign-your-work). + + +## Triggering CI re-run without making changes + +See [here](https://github.com/envoyproxy/envoy/blob/master/CONTRIBUTING.md#triggering-ci-re-run-without-making-changes). \ No newline at end of file diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 000000000..f65bc06f3 --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,28 @@ +# Maintainers + +This document aims to assist [maintainers](OWNERS.md). + +## Envoy domain expertise + +As a guideline, concepts in Nighthawk that are derived from Envoy +require someone with Envoy domain expertise in review. Notable examples +are the way Nighthawk internally computes cluster configuration, its +connection pool derivations, the `StreamDecoder` class, as well as anything related to the Nighthawk test server. + +See [OWNERS.md](OWNERS.md) to find maintainers with expertise of +Envoy internals. + +## Pre-merge checklist + +- Does the PR have breaking changes? Then that should be explicitly mentioned in the [version history](docs/root/version_history.md). +- New features should be added to the [version history](docs/root/version_history.md). +- Breaking changes to the [protobuf APIs](api/) are not allowed. + +## Updates to the Envoy dependency + +We try to [regularly synchronize our Envoy dependency](https://github.com/envoyproxy/nighthawk/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+%22update+envoy%22+) with the latest revision. Nighthawk reuses large parts of Envoy's build system and CI infrastructure. When we update, that looks like: + +- A change to [repositories.bzl](bazel/repositories.bzl) to update the commit and SHA. +- A sync of [.bazelrc](.bazelrc) with [Envoy's version](https://github.com/envoyproxy/envoy/blob/master/.bazelrc) to update our build configurations. +- A sync of the build image sha used in the [ci configuration](.circleci/config.yml) with [Envoy's version](https://github.com/envoyproxy/envoy/blob/master/.circleci/config.yml) to sync our CI testing environment. +- Sometimes the dependency update comes with changes that break our build. We include any changes required to Nighthawk to fix that. diff --git a/OWNERS.md b/OWNERS.md new file mode 100644 index 000000000..d53194152 --- /dev/null +++ b/OWNERS.md @@ -0,0 +1,15 @@ +* See [CONTRIBUTING.md](CONTRIBUTING.md) for general contribution guidelines. + +This page lists all active maintainers and their areas of expertise. This can be used for +routing PRs, questions, etc. to the right place. + +# Maintainers + +* Otto van der Schaaf ([oschaaf](https://github.com/oschaaf)) (oschaaf@we-amp.com) + * All things Nighthawk +* Harvey Tuch ([htuch](https://github.com/htuch)) (htuch@google.com) + * Envoy internals, architecture and performance methodology. +* John Plevyak ([jplevyak](https://github.com/jplevyak)) (jplevyak@google.com) + * Envoy internals and architecture. +* Jakub Sobon ([mum4k](https://github.com/mum4k)) (mumak@google.com) + * APIs, general functionality and miscellany.