The Gaia repo is currently maintained by Aaron Blankstein (@kantai), and reviewers for PRs include @jcnelson and @zone117x
A submitted PR must:
- Describe exactly what the goal of the PR is (and link to any relevant issues)
- Describe how that goal was achieved through the submitted implementation.
- The code must obey our eslint definitions, pass our unit tests, and contain correct TypeFlow annotations.
- Contain tests that cover any and all new functionality or code changes.
- Describe how the new functionality can be tested manually.
- Document any new features or endpoints, and describe how developers would be expected to interact with them.
- PR authors should agree to our contributor's agreement.
PRs on Gaia should be reviewed by at least (2) maintainers.
Most PRs should be based on the develop
branch, unless it is a hotfix, in which case
it should be based on the master
branch. We prefer that you do not do any squashing on
your commits (we like to see the whole history of edits). Maintainers will handle version
bumps and updating the CHANGELOG.md
file.
A PR reviewer is responsible for ensuring the following:
-
All code changes are covered by automated tests. a. If a driver is changed, tests must cover any changes in both the mocked driver tests and with real driver tests using credentials for that driver (if necessary).
-
Does this code change invalidate outstanding authentication tokens? If so, this is a breaking change, and versioning and release notifications must reflect that.
-
Does this code change the way data is written to any existing drivers? If so, do tests ensure that the written file data and meta-data (like Content-Type, Cache-Control) match exactly what was written previously? If no, why is this breaking change necessary?
-
Does this code change affect any other kinds of behavior in deployed hubs in a breaking way? If so, this is a breaking change, and versioning and release notifications must reflect that.
-
Does this code change change the typical read/write behavior and expectations of the Gaia hub? Under normal usage, a Gaia hub is responsible only for writes.
-
Does the code match our style guidelines as defined by our eslint definitions? Does type enforcement need to be disabled in any files?