תרום לקוד TensorFlow

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

לפני שאתם מתחילים

לפני שתתרום קוד מקור לפרויקט TensorFlow, אנא עיין בקובץ CONTRIBUTING.md במאגר GitHub של הפרויקט. לדוגמה, עיין בקובץ CONTRIBUTING.md במאגר הליבה של TensorFlow. כל תורמי הקוד נדרשים לחתום על הסכם רישיון לתורמים (CLA).

כדי להימנע משכפול עבודה, אנא עיינו ב-RFCs נוכחיים או מוצעים וצרו קשר עם המפתחים בפורומים של TensorFlow ( developers@tensorflow.org ) לפני שאתם מתחילים לעבוד על תכונה לא טריוויאלית. אנו די בררנים כשאנחנו מחליטים להוסיף פונקציונליות חדשה, והדרך הטובה ביותר לתרום ולעזור לפרויקט היא לעבוד על בעיות ידועות.

בעיות עבור תורמים חדשים

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

אם אתם מעוניינים לגייס צוות שיסייע בטיפול בבעיה בקנה מידה גדול או בתכונה חדשה, אנא שלחו דוא"ל לקבוצת developers@ ועיינו ברשימה הנוכחית שלנו של RFCs.

סקירת קוד

תכונות חדשות, תיקוני באגים וכל שינוי אחר בבסיס הקוד כפופים לבדיקת קוד.

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

הנה כמה שאלות שכדאי לזכור במהלך תהליך סקירת הקוד:

  • האם אנחנו רוצים את זה ב-TensorFlow? האם סביר להניח שזה ישמש? האם אתה, כמשתמש TensorFlow, אוהב את השינוי ומתכוון להשתמש בו? האם שינוי זה בהיקף של TensorFlow? האם עלות התחזוקה של פיצ'ר חדש תהיה שווה את היתרונות שלו?
  • האם הקוד תואם את TensorFlow API? האם פונקציות ציבוריות, מחלקות ופרמטרים בעלי שם טוב ומעוצבים באופן אינטואיטיבי?
  • האם זה כולל תיעוד? האם כל הפונקציות הציבוריות, המחלקות, הפרמטרים, סוגי ההחזרה והתכונות המאוחסנות נקראות בהתאם למוסכמות TensorFlow ומתועדות בבירור? האם פונקציונליות חדשה מתוארת בתיעוד של TensorFlow ומוצגת בדוגמאות, במידת האפשר? האם התיעוד מעובד כראוי?

  • האם הקוד קריא על ידי בני אדם? האם הוא בעל כמות נמוכה של יתירות? האם יש לשפר את שמות המשתנים לשם בהירות או עקביות? האם יש להוסיף הערות? האם יש להסיר הערות כלשהן כלא מועילות או מיותרות?

  • האם הקוד יעיל? האם ניתן לכתוב אותו מחדש בקלות כדי שיפעל בצורה יעילה יותר?

  • האם הקוד תואם לאחור עם גרסאות קודמות של TensorFlow?

  • האם הקוד החדש יוסיף תלויות חדשות בספריות אחרות?

בדיקה ושיפור כיסוי הבדיקות

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

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

לפרטים הספציפיים של נהלי הבדיקה בכל פרויקט TensorFlow, עיינו בקבצים README.md ו- CONTRIBUTING.md במאגר הפרויקט ב-GitHub.

דאגות מיוחדות בנוגע לבדיקות נאותות :

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

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

שיפור הודעות שגיאה או יומני רישום

נשמח לקבל תרומות לשיפור הודעות שגיאה ורישום.

תהליך עבודה של תרומה

תרומות קוד - תיקוני באגים, פיתוח חדש, שיפור בדיקות - כולן עוקבות אחר תהליך עבודה הממוקד ב-GitHub. כדי להשתתף בפיתוח TensorFlow, הגדר חשבון GitHub. לאחר מכן:

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

  2. שכפל את המאגר למערכת המקומית שלך.

    $ git clone git@github.com:your-user-name/project-name.git

  3. צור ענף חדש כדי לאחסן את עבודתך.

    $ git checkout -b new-branch-name

  4. עבוד על הקוד החדש שלך. כתוב והרץ בדיקות.

  5. בצע את השינויים שלך.

    $ git add -A

    $ git commit -m "commit message here"

  6. דחפו את השינויים שלכם למאגר GitHub שלכם.

    $ git push origin branch-name

  7. פתחו בקשת משיכה (Pull Request , PR). גשו למאגר הפרויקט המקורי ב-GitHub. שם תופיע הודעה על הענף שדחפתם לאחרונה, שתשאל אם תרצו לפתוח בקשת משיכה. בצעו את ההנחיות, השוו בין מאגרים שונים ושלחו את בקשת המשיכה. פעולה זו תשלח אימייל למשמשים. ייתכן שתרצו לשקול לשלוח אימייל לרשימת התפוצה לקבלת נראות רבה יותר. (לפרטים נוספים, עיינו במדריך GitHub בנושא בקשות משיכה ).

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

לפני שתעבדו על התרומה הבאה שלכם , ודאו שהמאגר המקומי שלכם מעודכן.

  1. הגדר את השלט הרחוק במעלה הזרם. (עליך לעשות זאת רק פעם אחת בכל פרויקט, לא בכל פעם.)

    $ git remote add upstream git@github.com:tensorflow/project-repo-name

  2. עבור לענף הראשי המקומי.

    $ git checkout master

  3. משוך את השינויים מטה מהזרם העליון.

    $ git pull upstream master

  4. דחפו את השינויים לחשבון GitHub שלכם. (אופציונלי, אך מומלץ).

    $ git push origin master

  5. צור ענף חדש אם אתה מתחיל עבודה חדשה.

    $ git checkout -b branch-name

משאבים נוספים של git ו-GitHub:

רשימת בדיקה לתורמים