Коли я повинен збільшити номер версії?


23

Я не навчався програмуванню в школі і не працюю (професійним) розробником, тому багато основ мені не зовсім зрозумілі. Це питання намагається уточнити одну з них.


Тепер припустимо, що у мене є проблеми #1,#2 і #3в моєму які встановлені для виправлення / покращення для версії, 1.0.0і що остання (стабільна) версія є 0.9.0.

Коли я повинен збільшити версію 1.0.0? Коли а) лише одне із перерахованих вище питань закрите або б) коли всі питання, пов’язані з версією 1.0, закриті?

Який із них - це правильний спосіб зробити це? І правильним чином я маю на увазі те, що зараз використовується у галузі.


22
Дивіться semver.org
Martijn Pieters

1
І ви можете включити всі три випуски у наступний реліз.
Martijn Pieters

Так, я вже використовую SemVer і ВСІ три терміни виходять у наступному випуску :)
ахмед

Я редагував питання, щоб не плутати.
ахмед

Відповіді:


14

Я можу вам сказати, як я це роблю на роботі.

У нас є сервер безперервної інтеграції, який створює, тестує, тегує та виводить пакунок із розробленим версією. Ми переходимо до наступного етапу лише у тому випадку, якщо попередній успіх на% 100.

Наша версія виглядає так: <Основна версія>. <Незначна версія>. <Номер збірки>

  • Кожна успішна збірка, що не має завершеного виправлення помилок або збільшення розширення функції, номер збірки.
  • Кожна успішна збірка із завершеним виправленням помилок або збільшенням розширення функції у мінорній версії. Це автоматично виявляється за наявністю повідомлення про фіксацію за допомогою певного формату. Це повідомлення про фіксацію також автоматично потрапляє в проекти ChangeLog.
  • Кожен основний приріст версії робиться вручну, коли ми маємо невідповідні сумісні зміни, переписуємось з нуля або з інших причин, зроблених у кожному конкретному випадку.

Але якщо у вас є ряд удосконалень, які слід завершити на <Малій версії>, наприклад, 1.0.0. Чи потрібно робити ВСІ ці вдосконалення, щоб мати можливість сказати "Гаразд! Тепер це версія 1.0.0" або ви нарощуєте версію 1.0.0, як тільки буде зроблено перше вдосконалення?
ахмед

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

5
@ahmed Якщо критеріями переходу від 0.xx до 1.xx було завершення набору функцій / виправлень, то я збільшив би лише після того, як вони були завершені. Зауважте: ми взагалі не працюємо таким чином. Ми не орієнтуємось на версію та вирішуємо, які виправлення в ній укладені. Ми орієнтуємося на виправлення. Отримана нами версія суто для відстеження та ідентифікації, а не мети.
дієтабудди

Це саме те, що я хотів знати :)
ахмед

21

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


Чи застосовується це також до веб-розробки, де випуск може бути простим виправленням неповнолітніх помилок?
ахмед

4
Ви робите QA перед випуском виправлення? Це випуск. Якщо не повний продукт, то виправлення.
Пітер К.

@ahmed У такому сценарії номери версій часто невидимі для користувача і, таким чином, безглузді (номери версій існують насамперед для маркетингової та технічної підтримки, обидві не застосовуються для багатьох веб-сайтів). Просто використання ідентифікатора комісії може бути достатньо. Якщо ви наполягаєте на використанні номерів версій, так, я, мабуть, збільшить рівень патч-рівня.
амон

Тут я багато чого навчусь: p Отже, підводячи підсумок: мені НЕ потрібні номери версій, оскільки ідентифікатори комісій є достатніми, оскільки ВСІ користувачі все одно будуть використовувати останню версію.
ахмед

2
Незважаючи на те, що всі користувачі перебувають у одній версії, до моменту ознайомлення із звітом про дефекти версія перейде. Вам все ще потрібен спосіб прив’язати звіт до конкретної збірки програмного забезпечення (дата / час може бути досить хорошою).
mattnz

2

Для безперервно розгорнутих веб-додатків ми схильні будувати номери побудови за допомогою переднього символу та скорочення номерів збірки, тобто: 2.5.3.4328, де 4328 походить із системи безперервної інтеграції. Загальне сподівання полягає в тому, що числа змінюються навмисними кроками, але що число збірки є справжнім унікальним ідентифікатором.

Здається, що тут робиться - це фіксація дня розгортання та відповідного номера збірки svn:

        <div id="svnrev">
            rev 2013.10.21.1078
        </div>

За свою ціну.


0

Інші відповіді вже чудові, тому я додам лише їх поверх. Якщо ваше програмне забезпечення не випущено і вам не потрібна публічна версія (непублічна версія - це ваш VCS), додайте ключове слово " SNAPSHOT " наприкінці вашої версії. Деякі системи, особливо в управлінні залежностями, трактують знімки по-різному від випущених версій, оскільки вони порівнюють дату зміни знімків замість номера версії. Отже, якщо у вас був репортаж 1.0.0-SNAPSHOT з 8 ранку в репортажі пакету, а завантажувач локальних залежностей має ту саму версію з 7 ранку, то завантажено оновлену версію з репо потрібно.

Як було сказано вище, ваше приватне версію надає система контролю версій (git, svn тощо).


0

Про теорію версії достатньо сказано ось ще одна точка зору.

Коли я повинен збільшити версію 1.0.0?

Я сфокусую свою відповідь на зміні основного номера версії.

Моя відповідь: В основному, коли ви будете готові до цього. Перехід від 0,9 до 1,0 - це велика річ, адже громадськість сприйме, що ви переходите від бета-продукту до офіційного випуску.

(Я припускаю, що це комерційний продукт від компанії).

Кілька питань, перш ніж перейти від 0,9 до 1,0.

Чи має ваша організація час інформувати всіх своїх поточних клієнтів. Щоб влаштувати вечірку. Отримайте багато запитів про підтримку. Менеджер облікових записів, щоб продати ваш товар? І т.д.

Так, я бачу версію як маркетинговий інструмент, і якщо озирнутися, то ви бачите, що це в основному галузевий стандарт.

Наша компанія перейшла від версії 2.x до 3.0 та влаштувала чудову вечірку, створила багато шумів і через це отримала досить багато нових клієнтів. Крім деяких оновлень інтерфейсу, відмінності між версіями були зовсім незначними.

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