Що насправді означають оновлені версії?


18

Багато програмних оновлень відповідають схемі від v0.1 до v0.2 до v2.6.5.6 . Що насправді означають ці "оновлення" програмного забезпечення? Чи завжди дотримується галузевий стандарт чи програмісти майже продовжують піднімати оновлення # або додавати більше десяткових знаків?


12
@ S.Lott Оскільки я досить новачок на сцені програмування, я не знав би особливостей. Це найкращий спосіб запитати, що я міг би придумати.
Джеймс Мерц

9
@ S.Lott, скорочуйте кофеїн, сер, це робить вас дратівливими.
окудо

2
@ S.Lott не соромтесь редагувати, як вважаєте за потрібне, щоб краще поставити питання. Я відчуваю, що ти знаєш, що я шукаю. Однак я вважаю, що надані відповіді були дуже хорошими. Я також вважаю, судячи з підсумків голосів за попередній коментар, що я зробив все можливе, що можу, і що питання все нормально. Однак я вітаю критику, а також редагування. Робіть так, як вважаєте за потрібне. Для мене я залишаю це в спокої.
Джеймс Мерц

1
@ S.Lott Питання здається мені досить зрозумілим. Я не думаю, що включення конкретної організації, яка пише стандарти, було б значним вдосконаленням. Якщо у вас є інше, не соромтесь редагувати. У вас є представник.
Адам Лір

3
@ S.Lott: "Чи є галузевий стандарт" - це зовсім чудово. Так, є галузеві стандарти! Не має значення, хто їх пише: KronoS хоче знати, що означають версії, це його вибір, щоб визначити, наскільки детально він іде ... Можливо, ви повинні були б згадати, що ви вважаєте це питання широким? Просто забивання деталей не дає зрозуміти користувачеві, кажучи користувачеві визначити: слово не робить це зрозумілим для користувача, сказати, що це безглуздо після того, як ваш перший коментар не зробить це зрозумілим для користувача.
Тамара Війсман

Відповіді:


16

Як сказав Шон, насправді не існує стандарту. Деякі компанії мають кращу версію версій, ніж інші (я мав справу з постачальниками, які пропускають основні номери версій, та іншими, які застрягли на тому самому xy через кілька релізів).

Сказавши це, винахідник «Граватарів» та співзасновник GitHub ( Том Престон-Вернер ) написав документ для « Семантичної версії », який більш ніж варто прочитати.

Ось виняток із вступу:

В якості вирішення цієї проблеми я пропоную простий набір правил і вимог, які диктують, як номери версій присвоюються та збільшуються. Щоб ця система працювала, спочатку потрібно оголосити загальнодоступний API. Це може складатися з документації або бути виконаним самим кодом. Незалежно від цього важливо, щоб цей API був чітким і точним. Після того, як ви ідентифікуєте свій загальнодоступний API, ви повідомляєте про нього зміни з певними кроками до номера своєї версії. Розглянемо формат версії XYZ (Major.Minor.Patch). Виправлення помилок, що не впливають на приріст API версії патча, додатково сумісні додатки API / зміни, збільшуючи незначну версію, і назад несумісні зміни змін API збільшують основну версію.

Я називаю цю систему "семантичною версією". За цією схемою номери версій та спосіб їх зміни передають значення основного коду та того, що було змінено з однієї версії на іншу.


7

З чотирма цифрами, як правило, майорV.MinorV.PatchNum.BuildNum, принаймні там, де я працюю.

Я особисто віддаю перевагу схемі версій Ubuntu - робить життя набагато простішим.


Яка їх схема? Чому ви віддаєте перевагу їм?
Джеймс Мерц

3
Ubuntu 10.10 = жовтень 2010, Ubuntu 10.04 = квітень 2010, Ubuntu 11.04 = квітень 2011, Ubuntu 9.10 = жовтень 2009 тощо. Про це згадує Шаун у тому посиланні на Вікіпедію.
Робота

2
Приємна річ у використанні дат у якості номерів версій полягає в тому, що - якщо не трапиться якийсь парадокс часу - ваш номер версії завжди буде в правильному порядку. Для більшості з нас простіше пам’ятати, що сьогодні 2011.02.13, ніж намагатися зрозуміти, якою має бути версія нового випуску.
jmort253

@ jmort245, Точно! Рукотворні системи досить безладні. Банківські банки вважають, що в році є 360, 362, 365, 366 тощо. Система версій - ще одне з цих дурних творінь. Тимчасові позначки не змушують нас замислюватися, хоча 20050207 потребує трохи більше часу для читання та визначення 502. Яке програмне забезпечення випускається частіше, ніж раз на місяць?
Робота

2
@job: Але використання версій дозволяє прив’язати функції до конкретних основних або другорядних версій. Тож якщо у мене версія 2, я знаю, що у мене є функція X, а у версії 1 немає версії X.
Мартін Йорк,

6

Коротка версія полягає в тому, що не існує стандарту, і компанії роблять все, що хочуть. По суті, чим більше номерів у вас є, тим менша кількість змін представляє кожне число. Як правило, ви побачите принаймні версію xy, де зміна x на x означає основні випуски (основні розширення / розширення функції), а y означає незначні випуски (значні зміни або виправлення дефектів). Більше десяткових знаків після цих двох може означати різні речі для компанії, хоча вони часто обертаються навколо незначних збірок вмісту або виправлень, які представляють собою швидші та менші виправлення.

У Вікіпедії є стаття, яка висвітлює це детальніше.


3

Метою номерів версій є надання посилань на звіти про проблеми. Єдина вимога - кожен випуск має унікальний номер версії. Деякі цифри керуються маркетингом - більші цілі числа легше продати, а число потужностей, таких як 10 (римська цифра X), дійсно привабливе. Деякі люди використовують деякі варіанти семантичної версії:

ГОЛОВНА.MINOR.MICRO.BUILD

  • Основні прирости: несумісні зміни або повний перегляд інтерфейсу користувача
  • Невеликі кроки: додано нові функції, сумісні з попередніми версіями в тому ж основному номері версії
  • Мікро приріст: випуск помилки
  • Номер складання: створюється компілятором або витягується з контролю версій

Багато груп скидають номер BUILD у своїх випусках. Зазвичай це корисно лише між групами тестування та розробки.

Деякі групи додають додаткову семантику, наприклад, непарний приріст MINOR з експериментальними збірками, а навіть нумеровані кроки MINOR - для виробничих випусків ( ядро Linux використовує цей підхід).

Підсумок полягає в тому, що не існує жодного стандарту, крім нових версій, які використовують більш високі номери версій, і що кожен номер версії є унікальним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.