PracticU

הסבר על מספור גרסאות

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › הסבר על מספור גרסאות
מילון מושגים:
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
מחלקה - תבנית בתכנות מונחה עצמים שמגדירה אילו נתונים ופעולות יהיו לאובייקטים שנוצרים ממנה.
עדכון אבטחה - עדכון תוכנה ממוקד שמתקן תקלה או סוגר חולשת אבטחה בגרסה קיימת.
באג - תקלה או שגיאה בקוד שגורמת לתוכנה להתנהג בניגוד למצופה.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.

הסבר על מספור גרסאות
הבנת מספר הגרסה של חבילה חשובה לכל מי שעובד עם NPM. מספר הגרסה בנוי לפי שיטה שנקראת Semantic Versioning, בקיצור SemVer, והיא מסבירה מה כל ספרה אומרת.
שלושת המספרים
הגרסה הראשונה של חבילה נרשמת בדרך כלל כ-1.0.0.
1. MAJOR (הראשון): שינוי שובר תאימות לגרסאות הקודמות. מעלים אותו כשמחליפים או מוחקים פונקציות ומחלקות בצורה שמקשה על מי שעבד עם הגרסה הקודמת. כשעולים בו, שני המספרים שמימין מתאפסים, למשל 1.0.8 הופך ל-2.0.0.
2. MINOR (האמצעי): הוספת פיצ'רים חדשים בלי לשבור את מה שעבד קודם. כשעולים בו, המספר שמימין מתאפס, למשל 1.0.8 הופך ל-1.1.0.
3. PATCH (השלישי): תיקוני באגים שתומכים בגרסאות הקודמות, למשל 1.1.0 הופך ל-1.1.1.
המרצה מסביר את 3.7.2: המספר הראשון מציין שזו המייג'ור השלישית, השביעי מציין שבתוך המייג'ור הזאת היו שבעה שחרורים של פיצ'רים חדשים, והשני מציין שזו השנייה מבין שחרורי תיקוני הבאגים.
הסימנים ^ ו-~
בקובץ package.json מופיע לפעמים סימן לפני הגרסה:
1. ^ (קראט): מאפשר את הגרסה שנכתבה, או גרסה חדשה יותר עם אותו MAJOR. למשל ^4.5.2 יכול להתעדכן ל-4.9.0, אבל לא ל-5.0.0.
2. ~ (טילדה): מאפשר את הגרסה שנכתבה, או PATCH חדש יותר באותו MINOR. למשל ~4.5.2 יכול להתעדכן ל-4.5.9, אבל לא ל-4.6.0.
כתיבה בלי סימנים
- 4.5.2 מתקין בדיוק את הגרסה הזאת.
- 4.x או 4.5.x מציין שהחלק שנשאר פתוח הוא החדש ביותר.
- * או x בלבד מביא את הגרסה החדשה ביותר של החבילה כולה. המרצה לא ממליץ על זה, כי זה עלול לשבור את הפרויקט.
כשמתקינים חבילה, NPM כותב ב-package.json את הגרסה עם ^, למשל ^1.4.0 לאחר התקנת colors.
הבנת הסימנים עוזרת לקבוע אם הפרויקט יתעדכן לגרסאות חדשות, ואילו שינויים יתקבלו.
השיעור הבא בקורס: פירסום Package באתר של NPM - חלק 1

פרקי ההרצאה: הסבר על מספור גרסאות

  1. 00:00

    מהו Semantic Versioning ולמה הוא חשוב

  2. 00:56

    שלוש הספרות במספר הגרסה

  3. 01:37

    Patch Release לתיקוני באגים

  4. 02:50

    Minor Release עם תכונות חדשות

  5. 03:45

    Major Release ושבירת תאימות לאחור

  6. 05:22

    קריאת מספר גרסה כמו 3.7.2

  7. 06:26

    סימני הכרת והטילדה בגרסאות

  8. 09:56

    התקנת חבילה ובדיקת הגרסה שהותקנה

תמלול ההרצאה: הסבר על מספור גרסאות

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

  1. 00:02

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

  2. 00:20

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

  3. 00:41

    מאוד חשוב לנו להבנה ברגע שאנחנו עובדים עם Node.js וכמובן עם כל התקנה של פאקג' אחר. אז בואו נבין מה בעצם זה אומר. אז יש לנו פה מספר גרסה 1.0.0. ברגע שיש לנו את המספר 1.0.0 זו הגרסה הראשונה שמוגדרת לנו בקובץ הפאקג' נקודת ג'ייסון.

  4. 01:03

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

  5. 01:18

    הספרה הראשונה נקראת Major, הספרה האמצעית נקראת Minor והספרה השלישית נקראת Patch, ולמעשה זה לא חייב להיות ספרה, זה מספר ליתר דיוק.

  6. 01:29

    אז המספר הראשון Major, מספר האמצעים מיינור והמספר הימני פאץ'. מה הם כל אחד מהם? אז בואו נראה. אז נתחיל עם פאץ', כיווה הכי פשוט להבנה בתור התחלה.

  7. 01:45

    פאץ', זה נקרא פאץ' ריליס, וזה אומר שאם נניח אנחנו בונים גרסה נוספת, גרסה אחרת, אבל כל מה שעשינו זה רק תיקנו באגים שהתיקון באגים האלה תומך אחורה, לא בעצם שובר גרסאות קודמות אז אנחנו מעלים באחד את הגרסה הימנית את המספר הימני נניח מ-0 ל-1 או מ-1 ל-2 כמובן שאסור שהבאגים האלה ישברו גרסאות קודמות מה זה אומר לשבור גרסה קודמת זה אומר שאם נניח מישהו הוריד את הגרסה שלנו

  8. 02:25

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

  9. 02:42

    זה נקרא Backward Compatibility. אוקיי, אז בעצם אם תיקנו באגים שהם תומכים גם בגרסאות הקודמות, זאת אומרת גם אנשים שעבדו עם הגרסה הקודמת יכולים לעבוד עם הגרסה החדשה שלנו, יצליחו לעבוד איתה, אז אנחנו מעלים את הגרסה הימנית.

  10. 03:00

    המספר האמצעי נקרא Minor Release. זה אומר שהוספנו New Features, לא רק תיקנו באגים. הוספנו פונקציות חדשות, הוספנו מחלקות חדשות, אבל עדיין זה Backward Compatibility.

  11. 03:16

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

  12. 03:42

    אז אנחנו מעלים ב-1 את האמצעי. אז יש לנו פה 1, 1, ואז 0. בדרך כלל, כלומר, לא בדרך כלל תמיד אם נעלה את זה, אז את זה נוריד ל-0.

  13. 03:54

    אז אם נניח עשינו את זה והיה לנו 1, 0, 8 נניח, ואנחנו רוצים להוסיף פיצ'רים חדשים, אז הגרסה הבאה שאנחנו מעלים זה 1, 1.0 מ-1.08 עולה ל-1.10 אוקיי אז היה לנו פאצ' היה לנו מיינור מה זה מייג'ור ריליס מייג'ור ריליס זה כל שינוי שכן שובר גרסאות קודמות זאת אומרת שאם נניח היה לנו 1.0.0 ופתאום ראינו שפונקציה או מחלקה בכלל

  14. 04:29

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

  15. 04:53

    את המייג'ור, וזה יהיה כמובן 2. אז זה לא משנה מה היה כאן, אם אנחנו מעלים ל-2, זה הופך להיות 0,0. אז נניח שהיה לנו 1,0,8 ואנחנו מעלים ל-2 ויש 2,0,0.

  16. 05:05

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

  17. 05:30

    אז השלוש מציין שזאת המייג'ור ריליס השלישית שיצאה. היו שלוש מייג'ור ריליסט והשלישית. השבע מציין שבגרסה הזאת של המייג'ור ריליסט השלישית היו שבעה ריליסטים של ניו פיצ'רס.

  18. 05:49

    רק בשלישית היו שבעה ריליסטים. אני לא יודע מכאן כמה היו בגרסה הראשונה וכמה היו בגרסה השנייה. מה השתיים מציין? השתיים מציין שבגרסה הזאת, שלוש שבע של הניו פיצ'רס, וה-new features כמובן לא שברו Backward Compatibility, היו שני שחרורים של תיקוני באגים, וזאת הגרסה השנייה מהשני תיקונים האלה.

  19. 06:22

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

  20. 06:40

    ה-patch-release וזה מציין את ה-minor-release. אז בואו נראה. תילדה מציינת שאנחנו רוצים להוריד את הגרסה עם ה-latest-patch-release.

  21. 06:54

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

  22. 07:12

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

  23. 07:39

    הדיפנדנס שאנחנו רוצים להשתמש עם איזשהו package, נניח, colors עם גרסה 452 בלבד, זה מה שכתוב פה, 452, זה אומר שאנחנו רוצים להוריד בול את גרסה 452. לא משנה אם יש אחרי זה שינויים שהם מיינור, מייג'ור או פאץ'.

  24. 08:02

    אם אנחנו מציינים את זה, טילדה 452, זה אומר, תוריד לי בבקשה מ-NPM את הגרסה 45 אבל תן לי את ה-patch release החדש ביותר שיש לך, שזה כמובן לא בהכרח 2, אפילו שפה כתוב 2, יכול להיות שזה יהיה 3. אם יש 3, תן לי את 3, ואם יש 8, תן לי את 8. הכי חדש שיש לך.

  25. 08:28

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

  26. 08:49

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

  27. 09:21

    לנו גם את הפאצ' ריליס החדש ביותר, זה כמובן. תן לי את הגרסה החדשה ביותר של ה-4, אבל כאן הכי חדש של ה-Minor ריליס ובה הכי חדש של הפאצ' ריליס.

  28. 09:35

    תבדקו האם גם אפשר 4.x, אם אני זוכר נכון, אפשר גם 4.x לכתוב, הוא פשוט יוריד את הגרסה הזאת בצורה זהה לזה. ולבסוף, אם אנחנו רושמים כוכבית או רק אז זה אומר תן לי את הגרסה הכי חדשה של אותו package שאני רושם, כולל major, כולל minor וכולל patch release.

  29. 10:00

    אז בואו נראה איך זה בא לידי ביטוי בתוכנית שלנו. אז אם עכשיו אנחנו רוצים להשתמש בנתונים האלה שלמדנו, יש לנו פה קובץ package.json ואין לו בכלל dependencies, ואנחנו באים ואנחנו אומרים npm i, תזכין לי בבקשה את colors שראינו בעבר.

  30. 10:23

    אז כמובן שהוא הולך ומביא את הגרסה החדשה ביותר שיש לו של colors, ושימו לב שהיא 1.4.0. אוטומטית שמים לנו את הכרת,

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: יצירת קבצי הגדרות - NodeJS config files

ההרצאה הבאה: פירסום Package באתר של NPM - חלק 1

הרצאות קשורות מקורסים אחרים

  • גרסאות שרת 2019
  • השוואה בין גרסאות אנדרואיד
  • השוואה בין גרסאות - Log ו-Show

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React