When contributing to Chrome DevTools, please follow the process explained in this document. This is to reach a clear agreement on proposals, while involving all relevant stakeholders and decision makers.
This process puts the IC in charge, but also requires Chrome DevTools' leaders to help the IC navigate the decision process. It includes an escalation path in case of disagreement. The overhead of this process should be proportionate to the scope of the proposal.
Important:
- Assume good intentions.
- Be kind and civilized.
- Be pragmatic.
LGTM: N/A
This person is the creator of the feature and the creator of the design documentation.
LGTM: Required. May delegate.
The Chrome DevTools TL is Danil Somsikov (dsv@chromium.org). The TL ensures architectural consistency and good coverage by the right set of LGTM providers, and is required to sign off on the design. They may however explicitly delegate to other LGTM providers.
In the absence of the TL, an EnReOw can act in their stead.
LGTM: Required. May delegate.
This is a person that is required to give LGTM. These are usually ICs with significant knowledge about the areas in question.
LGTM: Not required.
This is somebody who reviews and comments on the proposal. Their input should be considered, although their LGTM is not required.
LGTM: Not required. However, LGTM or non-LGTM is binding.
Stuck proposals can be escalated to the ENG_REVIEW_OWNERS. Potential use cases of such an escalation:
- An LGTM provider is non-responsive.
- No consensus on the design can be reached.
The EnReOw can overrule non-LGTMs or LGTMs.
- IC shares the document with LGTM providers and reviewers according to the roles listed above.
- LGTM providers may add more LGTM providers to remove themselves as LGTM providers.
- LGTM providers and reviewers review the design document and add feedback.
- IC incorporates feedback and iterates on their design document.
- Optional: the design doc is shared publicly with devtools-dev+design@chromium.org (make sure to give comment access to contributors@chromium.org, but untick the "Notify" checkbox).
- IC collects LGTMs by addressing feedback. Iterate if necessary.
- Once all required LGTMs have been collected, proceed with implementation.
- On disagreement that cannot be resolved or unreasonable delays, escalate to EnReOw.
- Implement and iterate on CLs with code owners. We expect the implementation to take place on the public repository's main branch. Note that a series of small incremental changes has a higher chance of receiving timely reviews and actionable feedback.
It is always useful to have a design document. Its length can vary depending on the scope of the proposed change.
As soon as possible so that a wide range of opinions can be taken into consideration. If you share your idea or prototype at a later stage, you risk having to redo the work because you missed a constraint.
Some pointers when people should be added to the list of LGTM providers:
- OWNERs of the source files/directories you anticipate to touch
- Main component expert of the components you anticipate to touch
- Downstream consumers of your changes e.g. when you change an API
Here.
Make sure you still have the LGTMs e.g. by pinging the LGTM providers.
In this case you can follow this path of escalation:
- Ping them directly via mail, chat or comment/assignment in the doc and specifically ask them explicitly to add an LGTM or non-LGTM.
- Get your TL involved and ask them for help.
- Escalate to EnReOw.
Review the design document. If you think there are other people who should take a look, add them as LGTM providers or as reviewers. If you don't think you are the right person, remove yourself as LGTM provider.
If you agree with the design, add an LGTM to the table. If you have blocking concerns, add "Not LGTM, because " to the table. Be prepared to re-review the design after another iteration.
The Chromium DevTools Design Review Guidelines complement Chromium’s feature launch process. If you are launching a new Web platform feature, please follow the Chromium launch process. It likely makes sense to have all the LGTMs gathered at the point in time you would send an Intent to Implement.