RFC-0007: Community Maintained Code #3404
Replies: 2 comments
-
|
@dreveman FYI |
Beta Was this translation helpful? Give feedback.
0 replies
-
|
📝 RFC Document Updated View changes: Commit History |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
📄 RFC Doc: 0007-community-maintained-code.md
Community Maintained Code
Authors: @primiano @LalitMaganti
Status: Decided
Problem
The Perfetto project has traditionally been maintained primarily by Google
engineers, with strict review requirements and infrastructure integration
standards. However, the community has expressed interest in contributing
substantial features and extensions that may not align with Google's immediate
priorities or infrastructure requirements.
The key use-case that is driving this RFC is
#3330 Rust SDK implementation by @dreveman
The current model creates friction for such contributions:
community-driven features.
and long-term support.
Google-internal repositories, limiting experimentation.
build and maintain.
We need a mechanism to:
Out of scope
While desirable, this problem cannot be easily solved for the general case:
Because in both cases the code gets bundled in our binaries and it's non-trivial
to handle optional build dependencies in our other repos.
For now this RFC limits the scope of contrib/ to projects that are technically
decoupled from the official distributions of Perfetto (e.g., conversion tools,
scripts, language bindings).
We might reconsider contrib/ extension points in future (having /contrib TP
modules could be very nice) but that requires further discussion out of scope
here.
Decision
Create a
contrib/directory for community-maintained code with thefollowing properties:
contrib/can be owned andmaintained by non-Google contributors.
contrib/do not require2 Google employee approvals.
contrib/is not built or exposedin Android or Google-internal repositories.
contrib/code ismaintained by the community, not the core Perfetto team.
standards and have at least 2 dedicated maintainers.
Design
Directory Structure
Note that the OWNERS.github file for now is only for human consumption.
The source of truth is
.github/CODEOWNERSwhich will need to be kept insync manually. In future we should invest in automation to allow decentralized
OWNERS.github files.
Decision
Create a
contrib/directory for community-maintained code with thefollowing properties:
contrib/can be owned andmaintained by non-Google contributors.
contrib/do not require2 Google employee approvals.
contrib/is not built or exposedin Android or Google-internal repositories.
contrib/code ismaintained by the community, not the core Perfetto team.
standards and have at least 2 dedicated maintainers.
Repository Integration
Perfetto main repository (
perfetto):contrib/directory exists and is fully functionalAndroid.bp or Bazel.
are responsible for keeping it green. The core team will put an effort to
avoid breaking it, but some breakages might be unavoidable (e.g. time-critical
changes when cutting a release)
Android repository:
contrib/directory exists to keep GitHub and Android repo in sync toallow the team to do git merges into release branches.
Android.bpbuild rules exposecontrib/code.Google-internal repository:
contrib/directory is completely removed via Copybara transformations.Disclaimer and Documentation
contrib/README.md(to be created):Alternatives Considered
Alternative 1: Separate repository
Approach: Create
perfetto-contriborganization with separate repos foreach community project.
Pros:
Cons:
Implementation Plan
contrib/directory structurecontrib/README.mdwith disclaimer/guidelines.github/workflows/require-two-reviewers-for-fork-prs.ymlcopybara.skyto excludecontrib/fromGoogle-internal imports
to mention
contrib/to mention
contrib/ownership💬 Discussion Guidelines:
Beta Was this translation helpful? Give feedback.
All reactions