Skip to content

Release cycle ru RU

ArchiBot edited this page Jan 19, 2023 · 24 revisions

Цикл выпуска

ASF использует стандартную для C# нумерацию версий из 4 чисел, записанных в виде A.B.C.D. Каждая версия всегда "заморожена" и указывает на фиксированный исходный код, из которого она была собрана (он идёт в комплекте с релизом). Мы не намерены удалять ранее опубликованные версии, во всяком случае пока наш хостинг-провайдер (GitHub) не возражает хранить их в течение неопределённого времени, поэтому вы всегда можете откатиться на любую из них без необходимости делать собственные копии.

В общих принципах присвоения версий ASF, мы стараемся следовать принципу semver МАЖОРНАЯ.МИНОРНАЯ.ПАТЧ в трёх младших числах - B.C.D. Эти три числа напрямую связаны с кодом ASF. Самое старшее число A указывает на глобальные изменения, лежащие за пределами самой кодовой базы ASF, обычно напрямую влияющие на саму основу программы.

ASF как проект стремится выпускать более или менее один выпуск функций в месяц, обозначенный значком C. Чтобы сделать такой выпуск возможным, у нас есть более мелкие предварительные выпуски, предназначенные для опытных пользователей, которые служат меньшими вехами изменений, которые выпускаются по мере необходимости, когда изменений будет достаточно после последний предварительный релиз, на котором стоит сосредоточиться. В конце концов, когда окончательный предварительный выпуск будет определен как стабильный и достаточно доработан, без известных критических ошибок, которые должны быть исправлены по сравнению с предыдущим стабильным выпуском, он будет переведен в новый стабильный выпуск, в то же время открывая новый месячный цикл для следующего.

Хотя мы делаем все возможное, чтобы даже наши предварительные выпуски были относительно стабильными, следует отметить, что предварительные выпуски не должны использоваться в какой-либо производственной среде. В предварительных выпусках могут быть критические ошибки и другие нарушенные функции, именно поэтому мы выпускаем их для начала - чтобы избежать всего этого беспорядка в наших стабильных сборках и предложить надежное программное обеспечение. Если вы не желаете принимать более высокий риск, связанный с использованием потенциально нестабильного программного обеспечения, пожалуйста, избегайте использования наших предварительных сборок и вместо этого придерживайтесь нашей последней стабильной сборки, которая более подходит для большинства пользователей.

В зависимости от количества изменений в цикле, обычно будет одно повышение версии C (из предыдущей стабильной версии) и повышение уровня D для каждого предварительного выпуска. Однако при внесении изменений с гораздо большим объемом, особенно критических изменений, цикл может начинаться с (или переключаться в середине) до B или даже A bump - такой переключатель указывает этот текущий цикл выпуска может быть более нестабильным, чем обычно, и должен быть тщательно протестирован. Имейте в виду, что изменения семвера, которые мы вносим, относятся только к ранее выпущенной стабильной версии, мы не отслеживаем управление версиями между предварительными выпусками в самом цикле, что означает, что версия 1.0.1.2 может иметь новые функции, которых в 1.0.1.1 не было, если ранее отмеченная стабильная версия принадлежит семейству 1.0.0. Точно так же могут быть серьезные критические изменения даже в двух предварительных выпусках одного и того же цикла, что особенно верно, когда мы все еще принимаем решение об окончательной форме недавно представленных функций или аналогичных.

Увеличение версии Тип Пример изменений
A Крупные изменения в .NET runtime, изменения в фундаменте, критические изменения, которые выходят за рамки кода ASF, вещи, которые могут съесть вашего кота (комментарий переводчика: что это за прикол с котом???).
B Мажорная (Major) Незначительные изменения среды выполнения .NET, критические изменения в кодовой базе ASF, основные правки кода, выходящие за рамки незначительной классификации
C Минорная (Minor) Новые ежемесячные циклы, обычно вводящие новые функции, команды, свойства конфигурации или другие изменения, которые не нарушают существующие настройки
D Патч (Patch) Новые предварительные выпуски, которые являются частью существующего цикла (обозначены более значимым числом), критические исправления ошибок в существующих стабильных выпусках, которые не вносят никаких изменений кода, кроме необходимых

Обратите внимание, что новые функции и изменения могут быт не документированы (например в wiki) до более позднего времени, поскольку документация обычно пишется когда готов окончательный код для данной функции (чтобы сэкономить время на переписывании документации каждый раз когда мы решим изменить функцию, над которой работаем). Из-за того, что предварительные версии могут содержать код, над которым в данный момент ведётся работа, и который не был ещё окончательно оформлен, документация создаётся на более позднем этапе разработки. То же самое верно и для списка изменений, который может быть недоступен для некоторых предварительных версий до какого-то времени. Поэтому, если вы решили использовать предварительные версии - будьте готовы время от времен изучать содержимое коммитов в ASF. Разумеется, недостаток документации относится только к предварительным версиям - у каждой стабильной версии должен быть полный список изменений и документация в wiki на момент выпуска.

Точный список изменений со сравнением одной версии с другой всегда доступен на GitHub - через коммиты и изменения в коде. В выпусках мы пытаемся отображать только изменения, которые считаем важными по сравнению с предыдущим стабильным выпуском. Такой краткий журнал изменений никогда не бывает полным, поэтому, если вы хотите увидеть все изменения, которые произошли между одной версией и другой (например, наши обновления зависимостей), используйте для этого сравнение на GitHub.

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

Clone this wiki locally