Що використовувати в якості початкової версії? [зачинено]


122

Зазвичай я починаю свої проекти з версією 1.0.0. Як тільки у мене є деякі речі разом, я випускаю його як 1.0.0 і продовжую роботу з 1.1.0.

Однак це призводить до корисної, але не зовсім повноцінної версії 1.0.0 більшості матеріалів, які я пишу. Потім я додаю функції та потрапляю до гідної версії десь біля 1.6.0. Багато проектів починаються з версії 0.1.0, яка буде такою ж корисною, як і моя 1.0.0.

Що б ти запропонував зробити? Почніть з 1.0.0 чи 0.1.0?

Останнє число призначене лише для випусків помилок. Ви можете думати про мою 1.0.0 як 1.0, а 0.1.0 як 0.1 - це вам простіше.


1
Я щойно дізнався про "семантичну версію" ( semver.org ), це саме те, що я хочу зробити. Однак я не створюю API, і це говорить про API, тому порада 1.0.0 насправді не застосовується.
Ноарт


Відповіді:


-24

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

Однак іноді версію наводить замовник, особливо якщо ви публікуєте код для загального користування.

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


1
Ви дійсно нічого не пояснюєте у своїй відповіді. Ви не згадуєте, які проблеми у вас виникли, тому ми можемо обговорити це. Ви не пояснюєте, коли і чому версії управляє замовник, що все одно не стосується ОП. І ви не пояснюєте, як і чому версію веде налаштування. Що ви навіть маєте на увазі під тим, що має значення для відповіді? Чітко визначена відповідь повинна містити мінуси та плюси кожного рішення, ви включили лише невиразні міркування :).
Ексапсія

224

Стандарт Semantic Versioning 2.0.0 говорить:

Найпростіше зробити це почати свій початковий реліз розробки на 0.1.0, а потім збільшити незначну версію для кожного наступного випуску.

Чудово переходити від 0,3,0 прямо до 1,0,0. Також цілком нормально бути на рівні 0,23,0. Починаючи з 0.4.0 дещо недоцільно, оскільки це дозволяє припустити, що були опубліковані попередні версії.

Крім того, зауважте, що 0.y.zце утримується в стороні для швидкої ітерації, так що початковий розвиток (а отже, і безліч змін) не залишить вас на чомусь глупому, як 142.6.0. Замість того, щоб наштовхуватися на основну версію, натискайте незначну версію на кожну зміну, поки не випустите 1.0.0:

Основна версія нуля (0.yz) призначена для початкової розробки. Все може змінитися в будь-який час. Публічний API не слід вважати стабільним.


Це ОБОВ'ЯЗКОВО бути прийнятою відповіддю. Ніколи не бачила відповіді з 16 голосами, як відповідь
Надер Ганбарі

Якщо ви користуєтеся npm, ви зможете провалитись. Якщо ви почнете з 0, знак каретки "^" в package.json поводитиметься по-різному. docs.npmjs.com/misc/semver#caret-ranges-123-025-004 Ви можете використовувати 0.x замість ^ 0. в пакеті json для цього сценарію. Тому 1.x трохи легше запустити та використовувати.
Сем

9

Номер версії повністю залежить від вас. Робіть те, що для вас має сенс, і будьте послідовні. Ніхто не каже, що ви повинні починати з 0, або 0,0, або 1,0, або 1,1.

Чудові програмісти фактично використовували систему нумерації версій як місцеві жарти. Приклади (Вікіпедія):

Починаючи з версії 3, TeX використовує ідіосинкратичну систему нумерації версій, де оновлення вказано додаванням додаткової цифри в кінці десяткової, так що номер версії асимптотично наближається до π. Це відображення того факту, що TeX зараз дуже стабільний, і очікуються лише незначні оновлення. Поточна версія TeX становить 3,1415926; Востаннє оновлено в березні 2008 року

Для METAFONT:

Metafont має систему версій, схожу на систему TeX, де число асимптотично наближається до e при кожному перегляді.

Нарешті, не зовсім новим варіантом, але не менш цікавим є те, що первинне публічне розміщення акцій Google (IPO) було подано до SEC за залучення 2 278 281 828 доларів (зауважте, що e ~ 2,718 281 828).

Моя думка: не відчувайте, що вам потрібно слідкувати за натовпом. Будьте креативними та послідовними.


6

Я думаю, що тут грають різні фактори. Психологічний / маркетинговий вплив номера версії (номер версії часто збільшується => більше $$$, люди не хочуть купувати бета-версію 0,99 тощо). "Логічні" номери версій можуть допомогти при роботі у величезній команді.

І мені подобається спосіб Linux мати непарні номери для нестабільних версій, і парні числа для стабільної.


1

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

Але як тільки ви переходите на попередню функцію, повну версію потрібно змінити


3
Це якимось чином означає, що ви можете піти лише на 0,9.0, але я знаю дуже багато проектів, які тривають як 0.25.0.
Ноарт

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

1

Вибираючи номери версій для npmпакету, майте на увазі, що для залежностей, перелічених у package.json діапазонах semver , не буде працювати нижче v1.0.0. Це є,

"dependencies": {
    "my-package": "^0.5"
}

еквівалентно

"dependencies": {
    "my-package": "0.5"
}

Якщо ви хочете використовувати діапазони semver або хочете дозволити іншим людям їх використовувати, ви можете почати з 1.0.0


Цікаво. Чи маєте ви більше інформації про те, чому (або де) діапазони Semver не працюють нижче 1,0,0? Оскільки 0.0.xв реєстрі npm існує досить багато пакетів .
Ремі

Я не знаю, чому npm люди прийняли таке рішення, або де в npm-системі це прийнято / що потрібно змінити для підтримки діапазонів semver для версій менше 1. Мені також цікаво знати!
Генрі

3
Вони прийняли це рішення, оскільки ^означає "сумісний з версією" . Детальніше тут . У semver, 0.y.zпризначений для початкового розвитку, і будь-яка зміна yабо zможе бути назад несумісною. У вашому прикладі, ^0.5 := 0.5 := 0.5.xзначить, це діапазон. Якщо діапазон кареток не працює для вас у 0.y.zдіапазоні, ви можете використовувати діапазони порівняння, hypen, x та tilde, крім діапазонів карет.
дозаматмат

0

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

Якщо ви переживаєте, що версія 0.6.5 має неповне кільце, ви можете продати її під версією 1.0. Ваш номер маркетингової версії не повинен відповідати вашому внутрішньому номеру версії. Наприклад, номер версії Windows 7 - 6.1.

Мої особисті переваги - починати з 0.1.0 і їхати звідти.


0

Залежить від проекту. Для простих інструментів командного рядка я зазвичай починаю близько 0,9 [.0], оскільки я розглядаю можливість випускати або упаковувати їх лише тоді, коли вони закінчуються (або готові до бета-тестування, все одно.) Складніші проекти починаються приблизно від 0,1 [.0] і деякі навіть не бачать 1,0. Я розглядаю 1.0 версію випуску (або принаймні тестування на бета-версії або кандидата на реліз) та планую відповідно.

З командними проектами той, хто ставить перший тег версії, вирішує :).


0

0.1.0 - це те, з чого я починаю, і рухаюся звідти. Це те, що я адаптував для Xploration Адріаном, хоча в перші роки я був дуже спорадичним і використовував 1.0.0, 0.0.1 та кілька інших. Але я рекомендую починати з 0.1.0 і їхати звідти.

Per Semver, зарезервуйте a і c in abc для A. Ви перший офіційний реліз та C. Виправлення помилок та виправлення. Це тому, що основна версія, як правило, ламає старіший код. А патчі просто виправляють помилки. Це все особисте уподобання, 0,99,0 не означає, що потрібно переходити до 1.0.0 і т. Д. Я бачив деякі, які йдуть аж до 0.218.42.


-1

Номери версій повинні мати для вас значення, як Аррієта раніше правильно коментував.

Можливо, слідує за чимось на кшталт: Перший # - це випуск мера, другий # - це той самий реліз мера з доданими деякими функціями, а третій - це той самий реліз мера, з тими самими можливостями, але з виправленими помилками або додано незначні (але досить значні) зміни.

1.3.2 => Перший випуск, із виправленими додатковими функціями та деякими помилками.

Однак для кінцевих користувачів деякі звикли до великої кількості фінальних релізів.

Наприклад: Corel 8, для 8.0.0, 8.0.1, 8.2.2 і т.д. Corel 9, для 9.0.0 ... і т.д.

В основному це стосується маркетингових стратегій, таких як: Corel X5 замість Corel 15.0.2, наприклад.

Я б сказав, що це залежить від того, чи буде номер версії для вас або для клієнта.


-4

почніть з 0.0.0 і рухайтеся далі.


4
Це означає, що ви насправді зробите реліз 0.0.0? Я починаю з першого номера, який збираюся випустити.
Ноарт

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