Skip to content

Release cycle ru RU

ArchiBot edited this page Dec 28, 2022 · 26 revisions

Цикл выпуска

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

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

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

While we're doing our best to ensure that even our pre-releases are relatively stable, it should be noted that pre-releases should be carefully evaluated when running in any production environment. В предварительных выпусках могут быть критические ошибки и другие нарушенные функции, именно поэтому мы выпускаем их для начала - чтобы избежать всего этого беспорядка в наших стабильных сборках и предложить надежное программное обеспечение. Если вы не желаете принимать более высокий риск, связанный с использованием потенциально нестабильного программного обеспечения, пожалуйста, избегайте использования наших предварительных сборок и вместо этого придерживайтесь нашей последней стабильной сборки, которая более подходит для большинства пользователей.

Depending on amount of changes in the cycle, usually there will be a single C version bump (from previous stable), and D bumps for every pre-release on as-needed basis. Однако при внесении изменений с гораздо большим объемом, особенно критических изменений, цикл может начинаться с (или переключаться в середине) до B или даже A bump - такой переключатель указывает этот текущий цикл выпуска может быть более нестабильным, чем обычно, и должен быть тщательно протестирован. Имейте в виду, что изменения семвера, которые мы вносим, относятся только к ранее выпущенной стабильной версии, мы не отслеживаем управление версиями между предварительными выпусками в самом цикле, что означает, что версия 1.0.1.2 может иметь новые функции, которых в 1.0.1.1 не было, если ранее отмеченная стабильная версия принадлежит семейству 1.0.0. Точно так же могут быть серьезные критические изменения даже в двух предварительных выпусках одного и того же цикла, что особенно верно, когда мы все еще принимаем решение об окончательной форме недавно представленных функций или аналогичных.

Увеличение версии Тип Пример изменений
A Major .NET runtime changes, foundation changes, breaking changes that are beyond ASF's codebase, stuff that might eat your cat
B Мажорная (Major) Незначительные изменения среды выполнения .NET, критические изменения в кодовой базе ASF, основные правки кода, выходящие за рамки незначительной классификации
C Минорная (Minor) Новые ежемесячные циклы, обычно вводящие новые функции, команды, свойства конфигурации или другие изменения, которые не нарушают существующие настройки
D Патч (Patch) Новые предварительные выпуски, которые являются частью существующего цикла (обозначены более значимым числом), критические исправления ошибок в существующих стабильных выпусках, которые не вносят никаких изменений кода, кроме необходимых

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

Точный список изменений со сравнением одной версии с другой всегда доступен на GitHub - через коммиты и изменения в коде. В выпусках мы пытаемся отображать только изменения, которые считаем важными по сравнению с предыдущим стабильным выпуском. Such brief changelog is never a complete one, so if you'd like to see every change that happened between one version and another (such as our dependencies upgrades) - please use GitHub comparison for that.

Проект ASF поддерживается нашим процессом непрерывной интеграции. Предполагается, что каждая сборка воспроизводима, поэтому не должно быть проблем получить исходный код (включенный в выпуск) данной версии и скомпилировать под себя, получив тот же результат, что и результат, доступный через наши предварительно скомпилированные двоичные файлы. We typically avoid compiling releases ourselves, as long as the systems are operative, the released binaries come directly from our CI process.

Clone this wiki locally