Skip to content

x/proto: create repo and setup Gerrit #26723

@dsnet

Description

@dsnet

We are starting development of the next generation of Go protocol buffers (with a heavy focus around proto reflection; see golang/protobuf#364). Those of us primarily involved with the development prefer to use a code review tool that is better able to track review comments, patch updates, and what not. We believe the choice of review tool is especially important in the starting phases where there is likely to be a large quantity of CLs of relatively large size, where Gerrit shows its strengths. As such, we prefer to develop using Gerrit as opposed to GitHub pull requests. The current workflow is contrary to most other golang/x projects in that protobuf still uses GitHub PRs, which is fine when each change is not that large.

As we explore using Gerrit, there are several thoughts/questions:

  1. Can we create a new repo at go.googlesource.com/proto?
  2. Can we mirror a branch named api2 on go.googlesource.com/proto to a branch named api2 on github.com/golang/protobuf?
  3. Does the above imply that the master branch must also be managed by Gerrit on go.googlesource.com/proto? If so, can we set up the GitHubPR to GerrittCL bot so that existing contributors can continue working with GitHub?
  4. What are our options of pre-submit testing? Are we going to be using try-bots? If so, will we be able to test across multiple Go versions (e.g., Go1.6, Go1.7, etc?). Will the try-bot have network access such that we can download external dependencies (e.g., "github.com/google/go-cmp") or dependents (e.g., "google.golang.org/grpc")? Can we get try-bot to do more complex operations like download protoc and run it over proto files? Can we build and run a C++ program (e.g., the conformance test runner; it may be possible to just download the test runner as a binary)?

\cc @paranoiacblack @neild @cybrcodr @bradfitz @andybons

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions