RFC: Contribution Quality & Process Overhaul #637
joshuadarron
started this conversation in
Ideas
Replies: 0 comments
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.
-
Context
RocketRide has grown fast. Stars, forks, and contributors have scaled significantly in a short time, and that's a good thing. But our contribution process hasn't kept pace. Right now we have:
developThese are problems worth solving before the contributor volume increases further. What follows is how I'm thinking about it. I'd love to hear where people agree, disagree, or have better ideas.
1. Branch Protection Rules
My thinking is that merging into
developshould require:2. Granular CI Checks
Right now CI is effectively a black box. A single failing Python test buries the TypeScript lint result and nobody can triage at a glance. I think splitting CI into discrete checks would help a lot:
ci/cpp-testsci/python-nodes-testsnodes/(smoke, module, security suites)ci/python-sdk-testspackages/client-python/ci/ts-chat-uiapps/chat-ui/ci/ts-dropper-uiapps/dropper-ui/ci/ts-sdkpackages/client-typescript/andpackages/client-mcp/ci/lint-formatci/type-checktsc --noEmit+ pyrightci/build-verifyci/docstring-coverageci/security-scanThe tests already run individually so this is primarily a wiring task: splitting each into its own GitHub Actions job rather than running everything in one action.
On docstring coverage: PR #464 is sitting at 15.79% against an 80% threshold. Flipping that to a hard block overnight would close half our open PRs. My thought is to set the block threshold at 40% now, publish a roadmap to 80%, and ratchet it up quarterly. Any new code added in a PR would need to meet 80% on the delta immediately, not the whole codebase.
On
ci/ts-sdk: tests forpackages/client-typescript/andpackages/client-mcp/don't exist yet. This check would be added once they do. Worth a separate conversation about what coverage looks like for the SDK public API.3. PR Template & Branch Naming
A consistent branch naming format would make PRs easier to triage and enable auto-linking to issues:
{type}/RR-{issue-number}-{brief-description}Valid types:
feat,fix,refactor,docs,test,chore,ciExamples:
A GitHub Action could validate the format on PR open and label
needs: branch renameif it doesn't match.For the PR template itself, something like:
If a checklist item doesn't apply, a comment explaining why is fine. Reviewers can use their judgment, but an unexplained blank checklist is going to slow things down.
4. Stale PR Policy
PRs that go quiet create drag for everyone. My thinking:
stale5. Comment Resolution Policy
A few norms I think would help keep reviews clean:
6. RFC Process for Non-Trivial Changes
For changes that have broad impact, I think it's worth having a lightweight RFC process before code gets written. My proposed triggers:
The process would be simple: open a GitHub Discussion with the
RFClabel, include a problem statement, proposed solution, alternatives considered, and tradeoffs. Tag relevant CODEOWNERS. Give it at least 3 business days before starting implementation. The implementation PR links back to the discussion.If you're unsure whether something qualifies, opening a Discussion and asking takes 5 minutes.
7. CONTRIBUTING.md
The current CONTRIBUTING.md is the default 5-step boilerplate. Whatever we agree on here should be reflected there so it's the single source of truth for contributors.
Curious what the team thinks. Where does this make sense, where does it not, and what's missing?
Beta Was this translation helpful? Give feedback.
All reactions