Proof, not promises
Every operation CloudBurrow emulates has exactly one status, and the status is generated, not written by hand. These are the values the compatibility matrix uses (docs/coverage):
- Verified
- An official-SDK compatibility test, linked from the row, exercises it.
- Served, not yet verified
- Served, with no official-SDK test yet.
- Refused, field named
- A compatibility test proves the upstream emulator refuses it.
- Returns UNIMPLEMENTED
- CloudBurrow returns UNIMPLEMENTED, proven in-process.
- Not served
- Not registered on any port.
- Not claimed: no test covers it
- An upstream-backed method no test covers, so nothing is claimed.
The promotion rule
An operation becomes Verified only in a pull request that adds a test driving it through an official
Google SDK, such as cloud.google.com/go/… or google-cloud-* for Python. A curl
invocation, a handwritten HTTP request or an internal unit test does not count: those test an
understanding of the API, not the client
(docs/compatibility.md).
Coverage is generated, and checked
The per-RPC coverage tables are generated from the Go proto descriptors and the // covers:
annotations on the compatibility tests. CI re-runs the generator in check mode and fails when the checked-in copy is stale
or an annotation is wrong (docs/coverage/README.md).
The acceptance flow runs on every merge
Every merge runs the compatibility suite against a live instance, and the acceptance workflow on an instance of its own: an object is uploaded, a notification goes to Pub/Sub, a Cloud Run worker reads the object and writes a result, and the result is read back. None of those tests may skip; the job fails unless every one passes (what CI runs, and why).
Independent of Google
CloudBurrow is built by SweetTech, which also runs this website. It is free and open source under Apache-2.0; see open source and credits.
CloudBurrow is not affiliated with, endorsed by, or sponsored by Google LLC. "Google Cloud", "Cloud Storage", "Pub/Sub", "Cloud Tasks", and "Cloud Run" are trademarks of Google LLC, used here only to describe the APIs this project aims to be compatible with.
From the project's NOTICE file. More on names and logos: trademarks.