בין אם אתה מוסיף פונקציית אובדן, משפר את כיסוי הבדיקה או כותב RFC לשינוי עיצובי גדול, חלק זה של מדריך התורמים יעזור לך להתחיל. תודה על העבודה והעניין בשיפור TensorFlow.
לפני שתתחיל
לפני שאתה תורם קוד מקור לפרויקט TensorFlow, אנא עיין בקובץ CONTRIBUTING.md
ב-Repo 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. לאחר מכן:
מזלג את הריפו שאתה מתכנן לעבוד עליו. עבור אל דף הריפו של הפרויקט והשתמש בלחצן Fork . פעולה זו תיצור עותק של ה-repo, תחת שם המשתמש שלך. (לפרטים נוספים על איך לחלק מאגר, עיין במדריך זה .)
שכפל את המאגר למערכת המקומית שלך.
$ git clone git@github.com:your-user-name/project-name.git
צור סניף חדש שיחזיק את העבודה שלך.
$ git checkout -b new-branch-name
תעבוד על הקוד החדש שלך. כתוב והפעל מבחנים.
בצע את השינויים שלך.
$ git add -A
$ git commit -m "commit message here"
דחף את השינויים שלך לריפו של GitHub שלך.
$ git push origin branch-name
פתח בקשת משיכה (PR). עבור אל מאגר הפרויקט המקורי ב- GitHub. תופיע הודעה על הסניף שנדחף לאחרונה, שתשאל אם תרצה לפתוח בקשת משיכה. עקוב אחר ההנחיות, השווה בין מאגרים ושלח את יחסי הציבור. זה ישלח אימייל למבצעים. אולי כדאי לשקול לשלוח מייל לרשימת התפוצה לקבלת נראות רבה יותר. (לפרטים נוספים, עיין במדריך GitHub בנושא יחסי ציבור .
מתחזקים ותורמים אחרים יבדקו את יחסי הציבור שלך . אנא השתתף בשיחה ונסה לבצע את כל השינויים המבוקשים . לאחר אישור ה-PR, הקוד ימוזג.
לפני העבודה על התרומה הבאה שלך , ודא שהמאגר המקומי שלך מעודכן.
הגדר את השלט במעלה הזרם. (עליך לעשות זאת רק פעם אחת בכל פרויקט, לא בכל פעם.)
$ git remote add upstream git@github.com:tensorflow/project-repo-name
עבור לסניף המאסטר המקומי.
$ git checkout master
משוך למטה את השינויים ממעלה הזרם.
$ git pull upstream master
דחף את השינויים לחשבון GitHub שלך. (אופציונלי, אבל תרגול טוב.)
$ git push origin master
צור סניף חדש אם אתה מתחיל עבודה חדשה.
$ git checkout -b branch-name
משאבי git
ו-GitHub נוספים:
רשימת תורמים
- קרא את ההנחיות התורמות .
- קרא את קוד ההתנהגות .
- ודא שחתמת על הסכם הרישיון לתורמים (CLA) .
- בדוק אם השינויים שלך תואמים את ההנחיות .
- בדוק אם השינויים שלך תואמים את סגנון הקידוד של TensorFlow .
- הפעל את בדיקות היחידה .