התלמוד של המפתחהתלמוד של המפתח

מסכת גיט

Pull Requests

5 הלכות

א

PR קטן עדיף על PR גדול. הפותח PR של אלף שורות — גורם לביקורת שטחית, ולרוב יאושר מתוך עייפות ולא מתוך הבנה.

אמרו חכמים: reviewer שראה אלף שורות — כבר לא קורא בשורה חמש מאות. הוי אומר: PR קטן הוא מתנה לעמיתיך, ומי שנותן מתנות — אהוב.

מחלוקת
רבי ג'ורג' הקטן אומר:

PR חייב להיות קטן — מאה שורות לכל היותר. יותר מזה — פצל. reviewer שרואה אלף שורות כבר לא קורא.

רבי לינוס הנורדי חולק ואומר:

Feature הוא feature. אי אפשר לפצל driver של kernel ל-PR של מאה שורות, ואי אפשר לפצל refactor גדול לחלקים שכל אחד שובר את הקוד.

רבי ג'ורג' הקטן:

אפשר תמיד לפצל — אם חושבים מספיק.

רבי לינוס הנורדי:

חשבת פעם על שינוי ממשק שמשפיע על מאתיים קבצים?

רבי ג'ורג' הקטן:

feature flag, backwards compatibility — יש פתרונות.

לרוב — קטן. לפעמים — גדול אך מוסבר היטב. תמיד — ברור ומכוון.

ב

חובה לכתוב תיאור ב-PR. "fixed stuff" ו-"changes" — פסולים הם. על התיאור לפרט מה השתנה, מדוע, וכיצד לבדוק.

שכן הreviewer אינו נביא, ואינו יודע מה היה לפני. תיאור טוב חוסך שאלות, מאיץ את הביקורת, ומוכיח שהמפתח הבין מה עשה.

ג

אסור למזג PR שלא עבר CI. ירוק — מותר. אדום — אסור. צהוב — ממתינים.

ודרשו חכמים: CI הוא השומר על ה-main. המתעלם ממנו — כאילו ביטל את השומר. ואם ביטלת את השומר — אל תתפלא כשיגנבו.

ד

PR הפתוח יותר מיומיים ללא ביקורת — חובה על הכותב לדרוש ביקורת. reviewer שלא ענה תוך יום עסקים — מותר להזכירו, ואף מצווה.

PR שנשכח פתוח הוא צרה. הוא צובר קונפליקטים, מאבד הקשר, ומייאש את כותבו. שמור על ה-PR חי — פינג מנומס אינו חוצפה, אלא אחריות.

ה

אסור לאשר PR שאינו מובן לך. "LGTM" על קוד שלא קראת — עוון גדול הוא, ואחריות הבאג חלה גם עליך.

חתימתך על PR היא עדות. ועד המעיד עדות שקר — חייב. לכן: לא הבנת? שאל. לא הספקת? אמור. אל תאשר מתוך לחץ חברתי.