איך חושבים קוד פתוח

באמצע יום עבודה רגיל על פרויקט 2ms (שהוא במקרה גם בקוד פתוח, אבל האמת שזה לא רלוונטי לענייננו), קלטתי שביצעתי רצף פעולות ארוך של החלטות על קוד פתוח, והבנתי ששווה לתאר רגע איך זה נראה.

הרקע

בפוסט על CI Checklist תיארתי איך יש לי תהליך אוטומטי שמוודא שהכותרת של הPR היא בפורמט מסוים, כדי לנהל גרסאות בצורה אוטומטית.

כרגע בכל פרויקט אני מבצע את זה בדרך אחרת, בין אם על ידי Regex או על ידי כלי ייעודי שנקרא commitlint.

היום, בזמן שחזרתי לעבוד על פרויקט 2ms, היה איזה באג לא מוסבר בתהליך האוטומטי שמבוסס על commitlint, אבל זה גרם לי לחשוב שבסה"כ המימוש בעזרת commitlint הוא די יעיל וגנרי.

לקחת עוד צעד

אמרתי שזאת שיטה גנרית? אז למה לא לארוז אותה בנוחות ולפרסם אותה לכולם? המחשבה הזאת עולה מיד, כי קודם כל, אם אני מבצע את אותה הפעולה בפרויקטים שונים, אולי כבר עדיף לי לארוז אותה בצורה מסודרת. חוצמיזה, אם עוד אנשים ישתמשו, באגים ייחשפו מהר יותר וגם ליותר אנשים יהיה אכפת לפתור אותם (וגם אם לא- את הבאג שלי בכל זאת פגשתי ואני בכל זאת אפתור).

מציאת פתרון קיים

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

אחרי כמה חיפושים מצאתי את dreampulse/action-lint-pull-request-title. אני מסתכל על כמה פרמטרים בפרויקט, ובגדול אני רואה שהוא לא מתוחזק, יש לו Issues & PR פתוחים שלא מקבלים מענה, והעדכון האחרון היה לפני 4 שנים (וזה היה גם העדכון הראשון).

גם פה, אותו עיקרון, שאם אני חשבתי על זה, סביר להניח שמישהו עשה את זה לפני. הרבה פעמים במקרים כאלה נמצא Issue ששואל מה מצב הפרויקט.
הכותב לא קיבל תשובה אז הוא מפנה אותנו לפרויקט אחר: Weburz/pr-lint-action

בחינת הפתרון

נראה שאף אחד לא מכיר את הפרויקט הזה, אין לו כוכבים, אין דיווחי באגים, אבל מצד שני הוא מעודכן, נראה שעובדים עליו, וגם הREADME נראה נורמלי. נראה שלמישהו אכפת מהפרויקט הזה.
כמובן, לא לוקחים פרויקט כזה לפרודקשן, זה גם מה שהוא כותב בעצמו, אבל במקרה הזה, כשמדובר בסה"כ בGithub Action קטן שאפשר לעבור על כל הקוד שלו ולוודא שאין שם משהו זדוני, אנחנו יכולים להתחיל להשתמש בו ולאחד כוחות כדי ליצור משהו טוב יותר לשנינו.

שימוש ושיפור מתמיד

הגעתי עד לשלב הזה, ומי שרוצה להמשיך מכאן אני אשמח לעזור לו

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