כתיבת טלאי

מטרת המדריך

מטרת מדריך זה להדגים כתיבת טלאי 1) עבור פרויקט המשתמש בכלי האוטומציה של GNU ובמנהל גרסאות מסוג subversion.

למי מיועד המדריך

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

על איזו מערכת נבנה המדריך

המדריך נבנה על מערכת Debian GNU/Linux אך כל מערכת לינוקס תתאים. הוראות ההתקנה המדוייקות ספציפיות למערכת מבוססת Debian GNU/Linux, אך ינתנו הסברים כלליים גם עבור מערכות אחרות.

דברים שצריך לאסוף לפני תחילת העבודה

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

במערכות Debian הפקודה הבאה תתקין את כל התכנות להן זקוקים בכתיבת פרוקיט C בסיסי (רוב הפרויקטים ידרשו עוד חבילות):

  sudo apt-get install build-essential

במערכות אחרות צריך להקפיד כי במערכת יהיו מותקנים מהדרים וספריות פיתוח בהתאם לצרכי הפרוייקט

  • - כלי האוטומציה של GNU.

במערכות Debian הפקודה הבאה תתקין את כלי האוטומציה של GNU

  apt-get install autoconf automake 

במערכות אחרות צריך להקפיד כי במערכת יהיו מתקנים כלי האוטומציה של GNUֹֹ

  • - מערכת ניהול גרסאות מסוג subversion.

במערכות Debian הפקודה הבאה תתקין את כל מערכת ניהול הגרסאות:

  apt-get install subversion 

במערכות אחרות צריך להקפיד כי במערכת תהיה מתקנת מערכת ניהול גרסאות מסוג subversion

מהלך העבודה

בחירת הפרויקט

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

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

לאחר שהחלטנו מה בדיוק אנו רוצים לתקן או להוסיף לפרויקט אפשר להתחיל.

בד”כ אפשר למצוא בדף הפרויקט ברשת הוראות כיצד להוריד את קוד הפיתוח של הפרוייקט משרת ה subversion שלו. אם הוראות כאלו לא נמצאות באתר, אפשר לפנות אל המפתחים ע”י רשימת הדיוור של הפרויקט, ערוץ irc או בדוא”ל לאחד המפתחים.

דוגמה להורדת קוד של פרויקט 2):

  svn co http://כתובת הפרויקט/svn/[module]/trunk [module]

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

INSTALL : מכיל הסברים והוראות כיצד להדר את הפרויקט וכיצד להתקין אותו

COPYING : מכיל את הרשיון לפיו מפותח הפרויקט

autogen.sh : תסריט המשמש מעטפת לכלי האוטומציה של GNU , יוצר סביבת עבודה ראשונית ומוודא כי כל כלי הפיתוח קיימים במערכת.

  ./autogen.sh --prefix=/usr

שם נפוץ נוסף לתסריט האיתחול יכול להיות bootstrap.sh

ChangeLog : קובץ טקסט המתעד את השינויים שנעשו בקוד.

README : קובץ טקסט המתאר את הפרויקט.

HACKING : קובץ טקסט המתאר את הכללים והשיטות הנהוגים בפרויקט 3).

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

נכין סביבת עבודה ראשונית ע”י שימוש בתסריטי ה autogen.sh . אם חסרים לנו כלי פיתוח או ספריות, התסריט אמור להודיע לנו על כל הכלים החסרים, ולהדריך אותנו בהתקנתם. כעת, לאחר שהרצת תסריט האיתחול הסתיימה בהצלחה, ניתן להדר את הפרויקט ע”י פקודת make, יש פרויקטים שידרשו הפעלת תסריט configure לפני ההידור.

  ./autogen.sh
  ./configure --prefix=/usr
  make

לאחר הרצת פקודת ה make בהצלחה, יש לנו פרויקט עובד. נריץ את קובץ ההרצה של הפרויקט ונבדוק כי גרסאת הפיתוח מתנהגת כצפוי ואף אחד לא תיקן את מה שרצינו לתקן לפנינו :-) .

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

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

הפקודה הבאה תכין את קובץ הטלאי:

  svn diff [filename] > [patch]
שליחת הטלאי

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

איך להמשיך

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

מדריכי תכנות

מדריכי תכנות - אוסף מדריכי התכנות בפנגווין.

1) המונח הלועזי הוא “patch” ומתורגם כאן ל-“טלאי”
2) אפשר למצא מידע נוסף על מערכת subvrsion באתר הפרויקט
3) דוגמה לקובץ HACKING מסודר אפשר למצוא בפרויקט גנומריק: http://svn.gnome.org/viewcvs/gnumeric/trunk/HACKING?view=markup
4) לרוב הפרויקטים הגדולים יש bugzilla מסודרת. קישור לבגזילה של פרויקט hspell http://ivrix.org.il/bugzilla
מדריכים/כתיבת_טלאי.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0