Экстремально предвзятый взгляд на версионирование...
-
Upload
konstantin-nazarov -
Category
Software
-
view
94 -
download
3
Transcript of Экстремально предвзятый взгляд на версионирование...
Константин Назаров (@racktear)
Экстремально предвзятый взгляд на версионирование программных продуктов: как запутать релиз-цикл раз и навсегда
X.Y.Z
‹#›
Direct X
Какая у меня версия? 9.0c, конечно!
‹#›
Internet Explorer
7.0.6001.18000 ?
‹#›
C-C-C-Combo
(12.0.6212.1000) SP1 MSO (12.0.6213.1000)
‹#›
Мое любимое: версия TeX
3.1415926
‹#›
Требования к версии
• Версия должна иметь смысл • Отражать совместимость • Быть “сравнимой” (>/</=) • И быть понятной пользователям
‹#›
Версионирование API
• Для совместимости • Для “устаревания” • Несколько вариантов одновременно
‹#›
Что будет если версионировать API неправильно
• Вы рискуете расстроить клиентов • И запутаетесь сами
‹#›
Семантическая версия
‹#›
Major
•Меняется при потере совместимости
‹#›
Minor
•Меняется при добавлении фич
‹#›
Patch
•Меняется при починке багов
‹#›
Причем здесь приложения?
• GUI — это “API” для людей • Пользователи тоже хотят предсказуемости
‹#›
Маркетинговые версии
• Photoshop CS6 • Windows 8.1 • OS X 10.9
‹#›
Маркетинговые версии
• Не путайте их с версией продукта • Избегайте их, если можете • Или ведите отдельно
‹#›
Типичные ошибки
‹#›
Ревизия в версии
• Ничего не говорит пользователю • Бесполезна для приложения • Затрудняет сравнение версий
3.0.0.fc2951f5
‹#›
Номер билда в версии
• Ничего не говорит пользователю • Бесполезна для приложения
2.0.0b1337
‹#›
alpha/beta/rc в версии
• Затрудняет сравнение версий • Бесполезны для приложения
4.0.8 beta1
‹#›
Произвольные суффиксы в версии
• Затрудняют сравнение версий
2.6.0-FooBar
‹#›
Не перегружайте версию
•Можно иметь и другие идентификаторы
‹#›
Другие проблемы
‹#›
Автоматизация
• Нет целостной версии — нет и автоматизации • В каждой системе будет своя версия
‹#›
Релиз цикл
• Версионирование вас ко многому обязывает • Оно может вынудить отложить изменения • Или выпустить их в неудобное время
‹#›
Решаем проблемы с версиями
• Не уверены что выбрать? SemVer! • Отделите маркетинговую версию • Отделите ревизию и номер билда • Поделитесь знанием с коллегами
‹#›
FAQ
‹#›
Есть ли универсальная схема версионирования?
• Нет • И не пытайтесь ее изобрести
‹#›
Security fix ломающий совместимость
•Меняйте Patch Level
‹#›
Адаптация enterprise софта
• Бранч для кастомера значит новый продукт • Начните с версии в исходном бранче • Подумайте о маркетинговой версии • Используйте “кодовые имена”
‹#›
Sphinx
• Андрей Аксенов