
1.0.0.1.0.8 הופך ל-2.0.0.1.0.8 הופך ל-1.1.0.1.1.0 הופך ל-1.1.1.3.7.2: המספר הראשון מציין שזו המייג'ור השלישית, השביעי מציין שבתוך המייג'ור הזאת היו שבעה שחרורים של פיצ'רים חדשים, והשני מציין שזו השנייה מבין שחרורי תיקוני הבאגים.package.json מופיע לפעמים סימן לפני הגרסה:^ (קראט): מאפשר את הגרסה שנכתבה, או גרסה חדשה יותר עם אותו MAJOR. למשל ^4.5.2 יכול להתעדכן ל-4.9.0, אבל לא ל-5.0.0.~ (טילדה): מאפשר את הגרסה שנכתבה, או PATCH חדש יותר באותו MINOR. למשל ~4.5.2 יכול להתעדכן ל-4.5.9, אבל לא ל-4.6.0.4.5.2 מתקין בדיוק את הגרסה הזאת.4.x או 4.5.x מציין שהחלק שנשאר פתוח הוא החדש ביותר.* או x בלבד מביא את הגרסה החדשה ביותר של החבילה כולה. המרצה לא ממליץ על זה, כי זה עלול לשבור את הפרויקט.package.json את הגרסה עם ^, למשל ^1.4.0 לאחר התקנת colors.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על מספור גרסאות» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא שנקרא סמנטיק ורז'ינינג, שזה בעצם הלחם של שני המילים האלה, הלחם זה מילה שמורכבת משתי מילים, והלחם נקרא סמבר, קיצור של סמנטיק ורז'ינינג.
זה בעצם הבנה לגבי איך בנוי המספר גרסה של כל פאקקג' כשאנחנו בונים או כשאנחנו מורידים מ-NPM. למה בעצם יש שם שלוש ספרות או שלושה מספרים עם שתי נקודות באמצע ועוד כל מיני קיצורים שקשורים לזה.
מאוד חשוב לנו להבנה ברגע שאנחנו עובדים עם Node.js וכמובן עם כל התקנה של פאקג' אחר. אז בואו נבין מה בעצם זה אומר. אז יש לנו פה מספר גרסה 1.0.0. ברגע שיש לנו את המספר 1.0.0 זו הגרסה הראשונה שמוגדרת לנו בקובץ הפאקג' נקודת ג'ייסון.
זה נקרא First Version of First Release. תמיד כשמפרסמים גרסה בפעם הראשונה, זה המספר שמקובל לבצע. אבל לכל אחד מהספרות האלה יש משמעות, ולהלן המשמעות.
הספרה הראשונה נקראת Major, הספרה האמצעית נקראת Minor והספרה השלישית נקראת Patch, ולמעשה זה לא חייב להיות ספרה, זה מספר ליתר דיוק.
אז המספר הראשון Major, מספר האמצעים מיינור והמספר הימני פאץ'. מה הם כל אחד מהם? אז בואו נראה. אז נתחיל עם פאץ', כיווה הכי פשוט להבנה בתור התחלה.
פאץ', זה נקרא פאץ' ריליס, וזה אומר שאם נניח אנחנו בונים גרסה נוספת, גרסה אחרת, אבל כל מה שעשינו זה רק תיקנו באגים שהתיקון באגים האלה תומך אחורה, לא בעצם שובר גרסאות קודמות אז אנחנו מעלים באחד את הגרסה הימנית את המספר הימני נניח מ-0 ל-1 או מ-1 ל-2 כמובן שאסור שהבאגים האלה ישברו גרסאות קודמות מה זה אומר לשבור גרסה קודמת זה אומר שאם נניח מישהו הוריד את הגרסה שלנו
והגרסה שלנו הייתה 1-0-0 ועובד איתה ומשתמש בה ויש בה כל מיני פונקציות כל מיני שירותים ואנחנו עכשיו מפרסמים גרסה 101 כי תיקנו באגים. אסור שאם הוא יתקין את הגרסה 101 זה יהרוס לו את הקוד שהוא כבר בנה.
זה נקרא Backward Compatibility. אוקיי, אז בעצם אם תיקנו באגים שהם תומכים גם בגרסאות הקודמות, זאת אומרת גם אנשים שעבדו עם הגרסה הקודמת יכולים לעבוד עם הגרסה החדשה שלנו, יצליחו לעבוד איתה, אז אנחנו מעלים את הגרסה הימנית.
המספר האמצעי נקרא Minor Release. זה אומר שהוספנו New Features, לא רק תיקנו באגים. הוספנו פונקציות חדשות, הוספנו מחלקות חדשות, אבל עדיין זה Backward Compatibility.
מי שישתמש עם הגרסה הקודמת שלנו יוכל עדיין להוריד את הגרסה החדשה וזה לא יפגע לו בקוד. אם זה קיים, נניח הוספנו שתי פונקציות מאוד חשובות או שתי מחלקות ו-14 פונקציות חשובות אחרות, אבל לא שינינו שום דבר שיהרוס עבודות עם גרסאות קודמות, עם הגרסה הנוכחית, הכוונה.
אז אנחנו מעלים ב-1 את האמצעי. אז יש לנו פה 1, 1, ואז 0. בדרך כלל, כלומר, לא בדרך כלל תמיד אם נעלה את זה, אז את זה נוריד ל-0.
אז אם נניח עשינו את זה והיה לנו 1, 0, 8 נניח, ואנחנו רוצים להוסיף פיצ'רים חדשים, אז הגרסה הבאה שאנחנו מעלים זה 1, 1.0 מ-1.08 עולה ל-1.10 אוקיי אז היה לנו פאצ' היה לנו מיינור מה זה מייג'ור ריליס מייג'ור ריליס זה כל שינוי שכן שובר גרסאות קודמות זאת אומרת שאם נניח היה לנו 1.0.0 ופתאום ראינו שפונקציה או מחלקה בכלל
אמורות להיות אחרת לגמרי ואנחנו זורקים אותם לפח ובונים מחלקות אחרות או מוחקים פונקציה שלמה שהיא מאוד בעייתית ובונים פונקציה אחרת לגמרי במקומה שמקבלת פרמטרים אחרים, כל מי שעבד עם הגרסה 1,0,0 כבר לא יוכל לעבוד עם הגרסה הנוכחית שאנחנו בונים, ולכן אנחנו חייבים להעלות את המספר השמאלי,
את המייג'ור, וזה יהיה כמובן 2. אז זה לא משנה מה היה כאן, אם אנחנו מעלים ל-2, זה הופך להיות 0,0. אז נניח שהיה לנו 1,0,8 ואנחנו מעלים ל-2 ויש 2,0,0.
נניח שהיה לנו אחד, אחד, חמש, ואנחנו באים עם שתיים, ויש שתיים, אפס, אפס. אז זה בעצם שלושת החלקים האלה, פאץ', מיינור ומייג'ור. עכשיו מגיעים איתם, או ליתר דיוק, לפני זה בואו נראה רגע דוגמה למספר 372, מה זה אומר. אם אנחנו רואים מספר כזה, מה אנחנו אמורים להבין מהדבר הזה?
אז השלוש מציין שזאת המייג'ור ריליס השלישית שיצאה. היו שלוש מייג'ור ריליסט והשלישית. השבע מציין שבגרסה הזאת של המייג'ור ריליסט השלישית היו שבעה ריליסטים של ניו פיצ'רס.
רק בשלישית היו שבעה ריליסטים. אני לא יודע מכאן כמה היו בגרסה הראשונה וכמה היו בגרסה השנייה. מה השתיים מציין? השתיים מציין שבגרסה הזאת, שלוש שבע של הניו פיצ'רס, וה-new features כמובן לא שברו Backward Compatibility, היו שני שחרורים של תיקוני באגים, וזאת הגרסה השנייה מהשני תיקונים האלה.
עכשיו יש שני סימנים שבעצם תמיד באים ביחד עם המספרים האלה, וזה הסימן של הכרת והסימן של הטילדה. הסימן של הכרת מציין משהו עבור המספר האמצעי, הסימן של הטילדה מציין משהו עבור המספר הימני.
ה-patch-release וזה מציין את ה-minor-release. אז בואו נראה. תילדה מציינת שאנחנו רוצים להוריד את הגרסה עם ה-latest-patch-release.
זאת אומרת, אם אנחנו מציינים תילדה והסימן הזה מגיע בצד שמאל פה, זה אומר שאנחנו רוצים את הגרסה שכתובה, אבל תן לי את הגרסה החדשה ביותר מבחינת ה-patch-release הזאת.
אם אנחנו אומרים לו קראט פה מצד שמאל זה אומר שאנחנו רוצים להוריד את הגרסה שכתובה פה אבל תן לי את המיינור ריליס הכי חדש שיש מפני שאני יודע בוודאות שזה לא יפגע לי בגרסאות קודמות שעבדתי בואו נראה מה הכוונה כמה דוגמאות אם יש לנו אם אנחנו כותבים בקובץ הפאקג' נקודת ג'ייסון בחלק של
הדיפנדנס שאנחנו רוצים להשתמש עם איזשהו package, נניח, colors עם גרסה 452 בלבד, זה מה שכתוב פה, 452, זה אומר שאנחנו רוצים להוריד בול את גרסה 452. לא משנה אם יש אחרי זה שינויים שהם מיינור, מייג'ור או פאץ'.
אם אנחנו מציינים את זה, טילדה 452, זה אומר, תוריד לי בבקשה מ-NPM את הגרסה 45 אבל תן לי את ה-patch release החדש ביותר שיש לך, שזה כמובן לא בהכרח 2, אפילו שפה כתוב 2, יכול להיות שזה יהיה 3. אם יש 3, תן לי את 3, ואם יש 8, תן לי את 8. הכי חדש שיש לך.
אנחנו יכולים גם כמובן לרשום תילדה 4, 5x, אפילו בלי הצורך לכתוב תילדה 4, 5x, אם אני זוכר נכון, תבדקו אותי, אבל אם אני זוכר נכון אפשר לרשום את זה והוא פשוט יוריד את הגרסה, ארבע חמש ואת הכי חדש מבחינת הפאצ' ריליס.
אם אנחנו כותבים קאראט ארבע חמש שתיים זה אומר דאונלורד ורז'ן ארבע ותן לי את הגרסה החדשה ביותר מבחינת המיינו ריליס כמובן זה לא חייב להיות חמש זה יכול להיות גם גרסה חדשה יותר אם קיימת אבל כן תן לי פה במייג'ור את ארבע במקום זה אנחנו רוצים אנחנו יכולים לכתוב גם ארבע דרך אגב הוא תמיד ייתן
לנו גם את הפאצ' ריליס החדש ביותר, זה כמובן. תן לי את הגרסה החדשה ביותר של ה-4, אבל כאן הכי חדש של ה-Minor ריליס ובה הכי חדש של הפאצ' ריליס.
תבדקו האם גם אפשר 4.x, אם אני זוכר נכון, אפשר גם 4.x לכתוב, הוא פשוט יוריד את הגרסה הזאת בצורה זהה לזה. ולבסוף, אם אנחנו רושמים כוכבית או רק אז זה אומר תן לי את הגרסה הכי חדשה של אותו package שאני רושם, כולל major, כולל minor וכולל patch release.
אז בואו נראה איך זה בא לידי ביטוי בתוכנית שלנו. אז אם עכשיו אנחנו רוצים להשתמש בנתונים האלה שלמדנו, יש לנו פה קובץ package.json ואין לו בכלל dependencies, ואנחנו באים ואנחנו אומרים npm i, תזכין לי בבקשה את colors שראינו בעבר.
אז כמובן שהוא הולך ומביא את הגרסה החדשה ביותר שיש לו של colors, ושימו לב שהיא 1.4.0. אוטומטית שמים לנו את הכרת,