Skip to main content

code-review-workflow

Provides guidance and best practices on Gerrit submission labeling, CI builder execution, Python code formatting/linting, commit metadata standardization, and testing strategy in git-repo.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
GerritCodeReview/git-repo
آخر نشاط في المصدر
٢٤ يونيو ٢٠٢٦ في ٢٠:٣١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤٥٢
التفرعات
٢٣٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
code-review-workflow
description
Provides guidance and best practices on Gerrit submission labeling, CI builder execution, Python code formatting/linting, commit metadata standardization, and testing strategy in git-repo.
# Code Review Workflow Engineering Guide ## Executive Summary Welcome to the authoritative engineering guide for the Code Review Workflow. This living repository exists to capture critical folk knowledge, prevent the recurrence of historical failure modes, and enforce strict architectural and procedural boundaries across our integration pipeline. By standardizing these protocols, we ensure high development velocity while maintaining rock-solid codebase stability and traceability. This guide covers the complete lifecycle of a change list (CL) from local development to automated submission. It defines the strict Gerrit labeling mechanisms required to trigger the Commit-Queue, mandates comprehensive CI builder environment checks, and enforces centralized Python static analysis. Furthermore, it outlines uncompromising standards for atomic commit metadata and pragmatic testing state isolation to guarantee that every integration is fully bisectable and verifiable. For incoming engineers, adherence to these mandates eliminates the friction of stalled pipelines, unreviewable monolithic changes, and silent CI regressions. Treat this guide as your primary roadmap for navigating the repository's strict submission requirements, enabling seamless transitions from peer approval to successfully integrated code. ## Summary | Chapter Theme / Title | Scope & Objective | | :------------------------------- | :---------------------------------------- | | **Gerrit Submission and Labeling | Dictates strict access controls, review | : Workflow** : enforcement protocols, and Gerrit : : : labeling mechanisms required to advance : : : changes through the CI pipeline, ensuring : : : seamless transitions to automated : : : integration via the Commit-Queue. : | **CI Builder Environment and | Defines guidelines for ensuring build | : Execution Integrity** : script resilience against missing : : : dependencies and managing process : : : execution contexts within LUCI and local : : : testing environments to prevent silent : : : builder failures. : | **Python Code Formatting and | Governs the automated enforcement of | : Linting** : Python style guidelines, mandating strict : : : PEP-8 compliance, import sorting, and : : : consistent string quoting to ensure : : : codebase uniformity and prevent CI : : : regressions. : | **Commit Metadata and History | Establishes the structural composition | : Standardization** : and metadata formatting of change lists : : : (CLs) to ensure precise issue tracker : : : integration, reliable CI/CD parsing, and : : : an atomic, bisectable repository history. : | **Testing Strategy and State | Outlines test implementation boundaries, | : Isolation** : emphasizing pragmatic mocking limits to : : : prevent false positives and detailing : : : acceptable workflows for deferred test : : : coverage while maintaining verification : : : integrity. : -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- ## Chapter: Gerrit Submission and Labeling Workflow **Context:** This domain dictates the strict access controls, review enforcement protocols, and specific Gerrit labeling mechanisms required to advance changes through the CI pipeline. Adherence ensures seamless transitions from peer approval to automated integration via the Commit-Queue. ### Summary | Rule ID | Principle / Constraint | Priority | Primary Symptom / | : : : : Trap : | :-------- | :------------------------------ | :------- | :----------------- | | **T1-01** | Explicit Labeling for Gerrit | High | Leaving a change | : : Automated Submission : : idle after : : : : : addressing : : : : : comments or : : : : : receiving a : : : : : reviewer's LGTM, : : : : : expecting the : : : : : reviewer to merge : : : : : it. : | **T1-02** | Automated Submission via | Medium | Requesting a | : : Commit-Queue (CQ) : : manual push or : : : : : direct submit from : : : : : repository : : : : : maintainers after : : : : : receiving code : : : : : review approval. : | **T1-03** | Gerrit Trusted Contributor | Medium | Relying on a | : : Review Enforcement Verification : : standard +2 vote : : : : : from a non-trusted : : : : : contributor to : : : : : fulfill strict : : : : : Review-Enforcement : : : : : requirements. : | **T1-04** | Mandatory Gerrit Labels for | High | Acknowledging an | : : Automated Submission : : approval but : : : : : failing to apply : : : : : the appropriate : : : : : Gerrit labels to : : : : : initiate the merge : : : : : pipeline. : | **T1-05** | Gerrit Automated Submission | Medium | Leaving an | : : Triggers : : approved patchset : : : : : idle and waiting : : : : : for maintainers to : : : : : manually merge it. : | **T1-06** | Active Reviewer Rerouting for | Medium | Waiting weeks or | : : Stalled Changes : : months for an : : : : : inactive or OOO : : : : : reviewer to : : : : : respond to a : : : : : patchset update. : -------------------------------------------------------------------------------- ### Rules #### T1-01: Explicit Labeling for Gerrit Automated Submission > **Rule:** Always apply `Verified+1` and `Commit-Queue+2` explicitly to trigger > the final submission phase. Never assume a code approval automatically > initiates the pipeline. > > **What:** Changes are not merged automatically upon receiving approval; > contributors must explicitly set the `Verified+1` and `Commit-Queue+2` labels > to trigger the final submission phase. > > **Applies To:** Gerrit review UI and change submission pipeline as defined in > `CONTRIBUTING.md`. > > **Why:** Contributors often mistakenly assume an LGTM implies an immediate > merge, leading to stalled changes. The project relies on explicitly triggering > the Commit-Queue to finalize CI checks and perform the merge. Failing to > adhere to this typically results in **Stalled Submission Pipeline**. **Trap 1: Leaving a change idle after addressing comments or receiving a reviewer's LGTM, expecting the reviewer to merge it.** **Don't:** * Waiting indefinitely after reviewer posts 'LGTM'. **Do:** * Vote `Verified+1` and `Commit-Queue+2` manually to submit the change to the automated queue. **Exceptions:** Contributors lacking trusted permissions must ping a repository maintainer to apply the final `Commit-Queue+2` vote. -------------------------------------------------------------------------------- #### T1-02: Automated Submission via Commit-Queue (CQ) > **Rule:** Must utilize the Gerrit Commit-Queue (CQ) labeling system to merge > code. Maintainers must never perform direct manual submissions. > > **What:** Merging code must be triggered via the Gerrit Commit-Queue (CQ) > labeling system rather than relying on direct manual submission by > maintainers. > > **Applies To:** Gerrit code review UI and CI/CD submission workflow. > > **Why:** Contributors would request maintainers to directly merge patches once > approved, bypassing the automated commit-queue pipeline, which guarantees that > final integration tests pass before pushing to the target branch. Failing to > adhere to this typically results in **Bypassed CI / Direct Submit**. **Trap 1: Requesting a manual push or direct submit from repository maintainers after receiving code review approval.** **Don't:** * Leaving a comment: "I believe everything is ready for integrating this. So if either of you can submit it, it would be appreciated." **Do:** * Applying the `Commit-Queue+2` (CQ+2) label in Gerrit, which delegates testing and the final merge operation to the automated bot. -------------------------------------------------------------------------------- #### T1-03: Gerrit Trusted Contributor Review Enforcement Verification > **Rule:** Verify review enforcement requirements are satisfied by contributors > within the explicitly configured trusted group. Never cast misleading +2 votes > if you lack valid trusted group privileges. > > **What:** Gerrit submission requirements may mandate specific approval levels > (e.g., two trusted contributors). Votes from users with +2 access who are not > in the designated 'trusted' group do not satisfy the 'Review-Enforcement' > submit requirement. > > **Applies To:** Gerrit repository administration and code review voting > workflows. > > **Why:** Non-trusted contributors with +2 rights were casting +2 votes on > changes. These votes did not fulfill the 'Two trusted contributors' > Review-Enforcement requirement, leading to stalled submissions and confusion > regarding why the UI showed a +2 but blocked submission. Failing to adhere to > this typically results in **Blocked Submission / Silent Requirement Failure**. **Trap 1: Relying on a standard +2 vote from a non-trusted contributor to fulfill strict Review-Enforcement requirements.** **Don't:** * Leaving a +2 vote on a change as a non-trusted contributor, creating the false appearance that the Review-Enforcement requirement has been partially or fully met. **Do:** * Verifying the reviewer is in the explicitly configured trusted group for the repository. If not, the reviewer should manually downgrade their invalid +2 vote to a +1 to clearly indicate that their vote does not count toward the enforcement threshold. **Exceptions:** Repositories where specific non-employee groups have been explicitly added to the trusted administrators list. -------------------------------------------------------------------------------- #### T1-04: Mandatory Gerrit Labels for Automated Submission > **Rule:** Always apply `Verified+1` and `Commit-Queue+2` labels to initiate > the CI merge process. Never leave an approved CL in a technically unlabeled > state. > > **What:** A code change must receive explicit `Verified+1` and > `Commit-Queue+2` labels by the author or reviewer to trigger the automated CI > merge process. > > **Applies To:** Gerrit workflow / Merge execution phase. > > **Why:** Historically, leaving a Change List (CL) in an approved but unlabeled > state causes the integration pipeline to stall indefinitely, requiring manual > intervention or reviewer pinging to trigger the CI queue. Failing to adhere to > this typically results in **Merge Pipeline Stall**. **Trap 1: Acknowledging an approval but failing to apply the appropriate Gerrit labels to initiate the merge pipeline.** **Don't:** * Leaving the CL in an approved state and waiting for auto-submission without applying the `Verified+1` or `Commit-Queue+2` labels. **Do:** * Explicitly applying `Verified+1` (and `Commit-Queue+2` if ready) once reviewers have approved the logic, to instruct the automation to merge the code. -------------------------------------------------------------------------------- #### T1-05: Gerrit Automated Submission Triggers > **Rule:** Must actively signal patch readiness to Gerrit systems using proper > label thresholds. Avoid leaving patchsets idle assuming upstream maintainer > action. > > **What:** A patchset requires specific label thresholds ('Verified+1' and > 'Commit-Queue+2') to trigger automated submission in the Gerrit workflow. > > **Applies To:** Gerrit review UI and automated CI/CD submission process for > the git-repo codebase. > > **Why:** Contributors frequently asked how to integrate changes after > receiving an approval, leading to stalled patches because the automated > pipeline was not explicitly triggered. Failing to adhere to this typically > results in **Stalled Patch Integration**. **Trap 1: Leaving an approved patchset idle and waiting for maintainers to manually merge it.** **Don't:** * Waiting indefinitely after receiving an 'LGTM' without setting workflow labels. **Do:** * The patch author manually sets the 'Verified' flag (if locally tested) and applies the 'Commit-Queue+2' vote to signal readiness for automated merge.
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub