Насправді нічого складного в ньому немає, а життя він спрощує людям дуже і дуже сильно.
✍️ Зазвичай версія програмного продукту складається з 3 (четверта то не по канону) частин:
<Major>.<Minor>.<Patch>-<postfix>, наприклад: 0.23.11 або 3.9.2-alpha. Версії, зазвичай числові, постфікси буквенно-числові. Теоретично можна emoji втулити, але я такого ще не бачив.👉 Секція
patch призначена для виправлень багів. Секція minor для нової функціональності, яка не ламає стару, а секція major призначена або для значних змін або для змін які ламають попередній функціонал, так звані breaking changes.🧨 Breaking changes - це такі зміни, які змушують користувачів змінювати код для того, щоб він продовжував працювати. Тобто, в буквальному перекладі, ламаючі зміни.
🗒 Наприклад у нас є функція
trim(line, maxSize) яка першим аргументом приймає рядок, а другим максимально допустимий розмір рядка. Якщо змінити порядок аргументів, це breaking change і ви зобов'язані змінити major версію. А якщо до другого аргументу додати значення за замовчуванням - це minor оновлення, оскільки це додаткова функціональність яка нічого не ламає.❗️Є з цього правила одне виключення - мажорна версія 0. Вона вважається не стабільною за замовчуванням і minor оновлення має право на breaking change. Майте це на увазі.
❤️ Такий підхід, теоретично, дуже спрощує життя розробникам. Уявіть собі, що ви встановили собі React версії 18.1.3 а, через декілька тижнів ви побачили, що вже вийшов React 18.2.1. Якщо (if? if is good!(C)) розробники React притримуються політики semver, то ви одразу розумієте, що можете безпечно оновити залежність, все буде працювати як і до того плюс ви отримаєте нову функціональність та багфікси. Дуже зручно.
Але є одне але - не всі притримаються такої політики. Тому найкращий спосіб працювати з semver наступним чином:
1️⃣ Коли ми пишемо власний код - ми завжди притримуємось семверу. Це не важко і робить користування нашим кодом зручнішим і безпечнішим для інших. Такий от вклад в ком'юніті.
2️⃣ Коли ми використовуємо чужий код - ми перевіряємо чи дотримуються розробник semver (React -так)
Сподіваюся було корисно і будете підтримувати semver, так само як і я.
@reactbeginners
П.М. Підготовка до відео з Next нарешті завершена, так що відео вже не за горами!