opensource.google.com

Menu

Docs

Getting Approval

(This is part of the process for releasing new open source code. There are different processes for patches and projects that you, or someone not at Google needs or wants to own the IP for your code.)

  1. Prepare
  2. Stage
  3. Get approval <- You are here
  4. Release

Creating a launch

Open source releases are managed through Ariane. After preparing your project and staging the code on an internal git-on-borg repo, you need to create a launch entry. This includes personal projects that have not gone through IARC, even for DevRel engineers.

IMPORTANT: All open source launches must be tracked in Ariane.

TIP: If you are in DevRel and want to release sample code for an already launched product, see DevRel Releasing.

Calendars

If you are releasing a new open source product (e.g. Kubernetes, Tensorflow, Go, GRPC, Istio), a Google API, or anything involving a new website, hostname, or domain, your launch must be on your PA Calendar. Add the Open Source calendar as a secondary calendar.

If you are just releasing code (e.g. a tool or library), or it’s a personal project, your launch only needs to have the Open Source calendar. (These launches must include the required disclaimer in the project README.)

IMPORTANT: If your calendars are in the wrong order, your launch will be suspended until you reorder them by removing the Open Source calendar and re-adding it.

Settings on your launch

  • Eng bit: Add your director as an approver for the Eng bit
  • Git On Borg Staging Repository: Include a link to your code in the Http URL for Git On Borg Staging Repository field.
  • GitHub URL: Include the GitHub URL of where you would like to publish your code. Follow guidance in go/github-docs#organizations as to which organization to use, and when you may publish in your personal account.
  • Approvers: Do not set any approvers’ bits to FYI or change assignments unless specifically instructed to do so.
  • Website: If you are creating a new website/domain with your launch, select “Yes” for the Website Launch field.

TIP: You can look at a sample launch to see how a launch should look.

Getting approval

Once your launch is created, follow these steps:

  • Ensure all reviewers have read access to your code.
  • Address any comments or issues posted by the launch reviewers.
  • Wait for approval.

During review, some of the major things reviewers look for include:

  • That it doesn’t include anything linked to Google’s “secret sauce” (e.g. ranking, filtering, etc…).
  • That sharing helps users, not just our competitors.
  • That any non-Google code is in a third_party directory.
  • That it is in license compliance with any third-party dependencies.
  • That it doesn’t violate a country’s laws.
  • There are no patent issues.
  • There are no privacy issues (see below).

A legal review will be required if your code collects any data about users and transmits it back to us or if it affects or transmits third-party content. We’ll add the right people to the launch calendar entry, but if you mention this in the description, it will help speed things up.

We’ll use the launch calendar entry to ask questions and discuss any potential problems, but it’s generally a smooth process. Once you receive full approval, continue on to the next step in this process.

DevRel, Cloud DevRel, and Ads DevRel releasing

DevRel teams producing sample code and example applications directly related to a released Google product may go through the expedited approval process by writing “DEVREL” in the notes for the Eng bit and flipping the bit yourself. If a launch is not complete within 3 business days of filing, please email emailremoved@ directly.

DevRel teams may use private GitHub repos to stage code related to I/O or marketing deadlines, but only after licensing and patents approval on the launch calendar. They must specify a fixed and reasonable deadline for deleting the repo or making it public.

Here’s some handy templates: go/dpe-launch, go/cloud-dpe-launch.

Additional instructions for DevRel teams can be found at go/dpe-oss and go/gcp-github.

Except as otherwise noted, the content of this page is licensed under CC-BY-4.0 license. Third-party product names and logos may be the trademarks of their respective owners.