Add issue templates, community docs, and OSS-ready documentation#123
Merged
Conversation
…ine README Add community contribution infrastructure: bug report and feature request issue templates, CONTRIBUTING.md, and CODE_OF_CONDUCT.md (Contributor Covenant v1.4). Streamline README from 463 lines to a concise entry point that links to CLAUDE.md, CONTRIBUTING.md, and TESTING.md, fixing broken links and inaccuracies.
Remove redundant Proto Changes and Adding Extensions sections from CONTRIBUTING.md (covered by CLAUDE.md). Move shell config to doc/howto/SHELL.md. Reorder sections so developer setup comes before Code of Conduct/License. Remove Code of Conduct and License from README since they live in CONTRIBUTING.md.
Add high-level SubmitQueue overview to README synthesized from the EuroSys '19 paper. Move development setup and troubleshooting from CONTRIBUTING.md to doc/howto/DEVELOPMENT.md. Slim down CONTRIBUTING.md to focus on contribution guidelines only.
Simplify README overview to a single paragraph, use 'speculative merge queue' instead of 'change management system', remove paper reference and specific build step assumptions. Rename Architecture to Developer Guide. Move shell config from CONTRIBUTING.md to DEVELOPMENT.md, add links to TESTING.md and SHELL.md from DEVELOPMENT.md, fix issues link in CONTRIBUTING.md.
manjari25
reviewed
Mar 6, 2026
manjari25
approved these changes
Mar 6, 2026
1126021 to
b10e5f1
Compare
albertywu
added a commit
that referenced
this pull request
May 29, 2026
Adds a read-only Status RPC to the gateway that returns the current
customer-friendly status of a previously submitted request, reconciled
from the append-only request log via
core/request.GetCurrentStateFromRequestLog. Status is a free-form string
(statuses can be added without breaking clients); unknown sqids map to a
typed RequestNotFoundError (user error) and empty sqids to ErrInvalidRequest.
Named "Status" to match the gateway's short RPC naming (Ping, Land, Status).
Changes:
- gateway/proto/gateway.proto: Status RPC, StatusRequest/StatusResponse, and
RequestNotFoundError messages (regenerated protopb)
- gateway/controller/status.go: StatusController + tests
- example/server/gateway/main.go: wire controller (reuses existing RequestLogStore)
Validation:
- Unit tests: bazel test //gateway/controller:controller_test (PASS)
- Integration (local stack): make local-gateway-start
PORT=$(docker port submitqueue-gateway-service-1 8080 | head -1 | cut -d: -f2)
# method is registered
grpcurl -plaintext localhost:$PORT list uber.submitqueue.gateway.SubmitQueueGateway
-> Land, Ping, Status
# seed a request
grpcurl -plaintext -d '{"queue":"test-queue","change":{"uris":["github:///pull/123/c3a4d5e6f7890123456789abcdef0123456789ab"]}}' \
localhost:$PORT uber.submitqueue.gateway.SubmitQueueGateway/Land
-> { "sqid": "test-queue/1" }
# happy path
grpcurl -plaintext -d '{"sqid":"test-queue/1"}' \
localhost:$PORT uber.submitqueue.gateway.SubmitQueueGateway/Status
-> { "status": "accepted" }
# unknown sqid
grpcurl -plaintext -d '{"sqid":"test-queue/999"}' \
localhost:$PORT uber.submitqueue.gateway.SubmitQueueGateway/Status
-> ERROR: request not found for sqid "test-queue/999"
# empty sqid
grpcurl -plaintext -d '{"sqid":""}' \
localhost:$PORT uber.submitqueue.gateway.SubmitQueueGateway/Status
-> ERROR: StatusController requires the request to have a sqid specified: invalid request
Co-authored-by: Cursor <cursoragent@cursor.com>
roychying
added a commit
to roychying/submitqueue
that referenced
this pull request
Jul 2, 2026
…for go-code compatibility (uber#293) <!-- Provide a summary in the Title above. Example: "Feature: add user authentication" --> ## Why? We want the smoothest DX for consuming the OSS submitqueue repo in go-code. Today go-code's `go_repository` uses `build_file_generation = "on"`, so its Gazelle regenerates BUILD files for the vendored repo. This causes conflicts and mismatches, and every version bump risks new patching. The root issue is that OSS carries proto types twice: as checked-in `.pb.go` in `protopb/`, and as Bazel-generated code via `go_proto_library` in `proto/`. Removing the Bazel proto rules in favor of the checked-in `.pb.go` fixes several things at once: - Eliminates duplicate proto definitions. The two generation paths share the same importpath, which caused the duplicate-importpath ambiguity and forced the `gazelle:resolve` workarounds. Collapsing to a single source removes that whole class of conflict. - Serves non-Bazel consumers. The Bazel-generated code only exists inside a Bazel build graph. Anyone consuming submitqueue via plain `go build/go get` (including OSS users) can only use the checked-in .pb.go, so that path must work regardless. The Bazel proto rules are a redundant second path that serves no one the checked-in files don't already serve. ## What? Disable Gazelle proto rule generation and remove all proto compilation rules, relying solely on checked-in `.pb.go` files. - Add `# gazelle:proto disable_global` to prevent Gazelle from regenerating proto rules on future make gazelle runs - Remove the `gazelle:resolve directives` that are no longer needed - Remove `proto_library`, `go_proto_library`, and alias `go_library` rules - Keep `exports_files` for `make proto` codegen (`tool/proto/BUILD.bazel`) ## Test Plan - `make build` - pass - `make test` - 65/65 unit tests pass (integration/e2e tests fail due to Docker dependency, pre-existing) - `bazel build //tool/proto:generated` - proto codegen still works - `make gazelle` - zero warnings, no duplicate-importpath ambiguity - Validated in go-code with `--override_repository` pointing at this branch: all 71 targets build, all 20 tests pass across stovepipe, submitqueue/gateway, and submitqueue/orchestrator ## Issue <!-- Link the issue here. - Use 'Closes uber#123' if this is the final fix. - Use 'Part of uber#123' or just 'uber#123' if the feature is still in progress. --> --------- Co-authored-by: chenghan.ying <chenghan.ying@uber.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan