При использовании semver должны ли предварительные версии основываться на номере предыдущей версии или на номере следующей версии?

Выполняя стратегию псевдо-CD для сред разработки, мы хотим убедиться, что все промежуточные сборки помечены и имеют версии таким образом, чтобы обеспечить отслеживаемость, но также соответствовать semver, чтобы helm и т. д. не кричали на нас, а также я мог спать по ночам зная, что я правильно навесил велосипеды. Я думал о семантике semver и о том, как можно пометить сборки/версии внутри выпуска.

Предполагая, что наш процесс не обеспечивает достаточную надежность для «прогнозируемой» версии (например, я не знаю, будет ли наш следующий выпуск основным, второстепенным или исправлением), как лучше всего применить версии для сборки между выпусками.

например

Учитывая последний выпуск 1.2.3

Учитывая постфикс временной метки для метаданных сборки (например, сборка может называться {версия}-1668519441 )

Учитывая, что я не знаю, будет ли следующий официальный выпуск 2.0.0, 1.3.0 или 1.2.4.

Я:

  1. Применить номер сборки к предыдущей версии, чтобы сгенерировать версию сборки? 1.2.3-1668519441
    • это выглядит немного противно, потому что технически это сборка следующей альфа-версии, а не сборка предыдущей версии.
  2. Применить номер сборки к моей лучшей версии следующей версии, чтобы сгенерировать версию сборки? 1.3.0-альфа-1668519441
    • так лучше, но мы обожжемся, если ошибемся
  3. просто плакать, потому что ответ "нет единственно правильного ответа", и теперь я должен принимать свои собственные решения?
    • ;-;
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
75
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разумным смартом будет "модифицированный 1" (потому что "внутренние сборки" - это всего лишь сборки, для которых у нас должен быть "какой-то id", который должен просто разрешать внутренние идентификация его и ничего более):

с чем-то вроде git describe HEAD вы получите 1.2.3--14-g2414721, 1.2.3-21-g975b, 1.2.3-25-g2dc6 и т. д., и любая из этих сборок позже в соответствии с (надеюсь, существующей) Политикой выпуска может стать 1.2.4, 1.3.x или даже 2.x.x (см. Идею обычных коммитов и версионирование релизов на его основе), "просто потому что..."

Ответ 3 смелый и однозначный вариант, но плохой, потому что не отвечает на вопрос и не дает хотя бы посредственного решения проблемы, а плохой, потому что не отвечает на вопрос и не дает хотя бы посредственное решение проблемы

Другие вопросы по теме