עבור מפתחים רבים, קוד פתוח (Open Source) הוא חלק בלתי נפרד מהעבודה. שילוב Copilot בעשייה של פרויקטי קוד פתוח יכול להיות ברכה – אך דורש הקפדה מסוימת. בפרויקט קוד פתוח, השקיפות גבוהה וכל שינוי נדון בפומבי; לכן חשוב במיוחד לוודא שהתרומה שלכם באמצעות Copilot עומדת בדרישות הפרויקט מבחינת סגנון, איכות ורישוי.
התאמה לסגנון הפרויקט
לכל פרויקט גדול יש קווי סגנון והנחיות משל עצמו. Copilot ינסה אוטומטית להתאים את עצמו – הוא "יראה" את הקבצים האחרים בפרויקט כשתתחילו לכתוב, ויאמץ את הסגנון שלהם. לדוגמה, אם הפרויקט משתמש ברווחים במקום טאבים או בסימון מסוים לתגובות, קרוב לוודאי שההצעות של Copilot ישתקפו בכך. עם זאת, תמיד כדאי לעבור על הקוד המוצע ולוודא שהוא באמת תואם את הסגנון. ייתכן שתצטרכו לשנות שמות משתנים, לפרק פונקציות ארוכות, או להוסיף הערות – כפי שמקובל באותו מיזם. Copilot יכול לחסוך לכם זמן בכתיבת הלוגיקה, אבל הוא לא מכיר בהכרח את "רוח הפרויקט" כפי שהמפתחים המנוסים מכירים.
רישוי וקבלת תרומה
בניגוד לקוד קנייני, בקוד פתוח כל התרומות חייבות להתאים לרישיון הפרויקט. אם Copilot מציע קוד שהוא העתק הדוק ממקור שקודו לא תואם רישיון, עלולה להיות בעיה בקבלת השינוי. לכן, השתמשו בסינון הקוד הפומבי (כפי שהוסבר לעיל) כשאתם עובדים על מאגרי קוד פתוח – במיוחד אם מדובר בפרויקט שלכם ואתם רוצים לשמור על "ניקיון" מבחינת זכויות יוצרים. בנוסף, אם Copilot מציע לכם קוד שלם שנראה מתוחכם מכפי ציפייתכם, אולי כדאי לשאול את עצמכם: האם ייתכן שהקוד הזה מגיע ממקור ידוע? לדוגמה, היו מקרים ש-Copilot הציע אימפלמנטציות שלמות של אלגוריתמים מהספרות – מה שעלול לגרור דיון ב-PR על מקור הקוד. אם אתם חושדים בכך, אפשר ליידע את המתחזקים בעת פתיחת ה-Pull Request, כדי להיות שקופים. בסופו של דבר, האחריות על התרומה היא שלכם וכדאי לוודא שתוכלו להסביר כל שורת קוד שהגשתם, בין אם כתבתם אותה או Copilot.
יתרונות אפשריים בקוד פתוח
מצד החיובי, Copilot יכול להאיץ מאוד פיתוח פיצ'רים ותיקוני באגים בפרויקטי קוד פתוח, שלעיתים סובלים ממחסור בזמן ומשאבים. אם יש לכם באג פתוח בגיטהאב, אפשר אפילו "לשוחח" עם Copilot Chat עליו: "כיצד לפתור את issue #42 המתאר דליפת זיכרון?" – כמובן Copilot לא יכול לגשת בעצמו ל-issue, אבל אתם יכולים להעתיק את תיאור הבעיה ולתת לו לנתח, אולי יחד עם קטע קוד רלוונטי. הוא עשוי להציע פתרון או לפחות כיוון. לאחר מכן תוכלו לממש את הפתרון ולהריץ בדיקות. כך Copilot משמש כחבר לצוות הפתוח, שעוזר לסקור, להבין ולכתוב קוד.
GitHub אף מעודד תחזוקי קוד פתוח להשתמש ב-Copilot: הם מציעים שימוש חינמי ב-Copilot למתחזקי פרויקטים פופולריים. אם אתם מוגדרים כ-Maintainer של פרויקט קוד-פתוח גדול, ייתכן שתקבלו הודעה שזכיתם בגישה חינמית. זהו צעד של GitHub שנועד הן להוקיר את תרומת המתחזקים והן לעודד שימוש בכלי בקהילה. כדאי לבדוק בעמוד המנוי Copilot שלכם – אם הפרופיל שלכם עומד בקריטריונים (לרוב, תחזוקה של ריפו עם מספר כוכבים/משתמשים גבוה), ההטבה תופיע אוטומטית.
מחסומים אפשריים
חשוב לזכור שחלק מהקהילות או המפתחים עשויים להביט בחשדנות על תרומות "AI". לא בכל מקום זה קיים, אבל היו דיונים בקהילות כמו קרנל לינוקס שדחו קוד אם היה חשד שהמגיש לא מבין אותו עד הסוף. על כן, עשו שיעורי בית – ודאו שהקוד שלכם נכון, כתבו תיעוד ובדיקות נלוות (גם כאן Copilot יכול לעזור!), והיו מוכנים לענות לשאלות במידה והמתחזקים ישאלו על הפתרון. אם תראו שאתם שולטים בתרומה, אין סיבה שלא יקבלו אותה. Copilot הוא בסך הכול כלי – מה שחשוב הוא איכות הקוד והתאמתו.
תירגול מוצע
אם אתם תורמים לפרויקט קוד פתוח, בחרו Issue פשוט או Feature קטן ליישום. השתמשו ב-Copilot כדי לממש את הפתרון, אבל לאחר מכן עברו בעצמכם על הקוד והשוו למודולים אחרים בפרויקט. הריצו את הבדיקות של הפרויקט וודאו שהכל עובר. לפני שליחת ה-PR, קראו את השינויים ונסחו תיאור ברור של מה שעשיתם (ייתכן ש-Copilot יכול לעזור גם בניסוח הודעת ה-Commit או תיאור ה-PR!). לבסוף, כצעד לימודי, תוכלו לפרסם את ה-PR ולראות את הביקורת – האם המתחזקים העירו משהו על הקוד? למדו מהמשוב כדי להשתפר בשילוב Copilot בעבודה משותפת.