Общие сведения о версионировании в .NET
Новые функции в среде выполнения и пакете SDK для .NET добавляются с различной частотой. Как правило, пакет SDK обновляется чаще, чем среда выполнения. В этой статье приводятся сведения о нумерации версий среды выполнения и пакета SDK.
Новый выпуск .NET с основным номером версии выходит ежегодно в ноябре. Выпуски с четным номером версии, например .NET 6 или .NET 8, получают долгосрочную поддержку (являются выпусками LTS). Выпуски с нечетными номерами поддерживаются до выхода следующего выпуска с основным номером версии. Последним выпуском .NET является .NET 6.
Сведения об управлении версиями
Для среды выполнения .NET используется формат версий "основной_номер.дополнительный_номер.номер_исправления", соответствующий семантическому версионированию.
Однако пакет SDK для .NET не соблюдает семантическое версионирование. Новые версии пакета SDK для .NET выпускаются чаще, а их номера версий должны отражать как версию соответствующей среды выполнения, так и собственный дополнительный номер версии и номер исправления пакета SDK.
Первые две позиции в номере версии пакета SDK для .NET соответствуют версии среды выполнения .NET, с которой выпускается этот пакет. Каждая версия пакета SDK позволяет создавать приложения для этой среды выполнения и любых ее предыдущих версий.
Третья позиция номера версии пакета SDK сообщает дополнительный номер версии и номер исправления. Дополнительный номер версии умножается на 100. Последние две цифры означают номер исправления. Дополнительный номер версии 1 и номер версии исправления 2 будут представлены как "102". Например, ниже приведена возможная последовательность номеров версий среды выполнения и пакета SDK:
Change | Среда выполнения .NET | ПАКЕТ SDK ДЛЯ .NET (*) |
---|---|---|
Начальный выпуск | 5.0.0 | 5.0.100 |
Исправление для пакета SDK | 5.0.0 | 5.0.101 |
Среда выполнения и исправление для пакета SDK | 5.0.1 | 5.0.102 |
Изменение функций пакета SDK | 5.0.1 | 5.0.200 |
Примечания:
- Если до обновления компонентов среды выполнения выходит 10 обновлений компонентов пакета SDK, номера версий переходят на числа от 1000. Например, за выпуском 5.0.900 следует версия с номером 5.0.1000. Такая ситуация является маловероятной.
- То есть 99 выпусков исправлений без выпуска компонентов не произойдет. Если версия выпуска приближается к такому номеру, неизбежно выходит выпуск компонентов.
Дополнительные сведения см. в начальном предложении в репозитории dotnet/designs.
Семантическое версионирование
Среда выполнения .NET примерно соответствует семантике (SemVer), принимая использование управления версиями, используя различные части номера версии для описания степени и типа изменения.
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
Необязательные части PRERELEASE
и BUILDNUMBER
никогда не используются в поддерживаемых выпусках и применяются только для ночных сборок, локальных сборок, которые создаются из исходных целевых объектов, и неподдерживаемых предварительных выпусков.
Общие сведения об изменениях номера версии среды выполнения
Версия
MAJOR
с более высоким номером выходит раз в год и может включать следующее.- Значительные изменения или новое направление развития продукта.
- Внедрение критических изменений в API. Для принятия критических изменений действует высокая планка.
- Присваивается более новая версия
MAJOR
существующей зависимости.
Основные выпуски выходят раз в год, а версии с четными номерами являются выпусками с долгосрочной поддержкой (LTS). Первый выпуск LTS, использующий эту схему управления версиями, — это .NET 6. Последняя версия, не относящаяся к LTS, — это .NET 5.
MINOR
увеличивается в следующих случаях:- Добавляется контактная зона общедоступного API.
- Добавляется новое поведение.
- Присваивается более новая версия
MINOR
существующей зависимости. - Добавляется новая зависимость.
PATCH
увеличивается в следующих случаях:- Вносятся исправления ошибок.
- Добавляется поддержка новой платформы.
- Присваивается более новая версия
PATCH
существующей зависимости. - Вносятся другие изменения, которые не относятся к описанным выше случаям.
При наличии нескольких изменений увеличивается самый высокий элемент, затронутый отдельными изменениями, а следующие за ним сбрасываются до нуля. Например, при повышении номера версии MAJOR
номера MINOR.PATCH
сбрасываются до нуля. Когда повышается номер MINOR
, номер PATCH
сбрасывается до нуля, а MAJOR
остается неизменным.
Номера версий в именах файлов
Файлы, скачанные для .NET, имеют версию, например: dotnet-sdk-5.0.301-win10-x64.exe
.
Предварительные версии
Для предварительных версий к номеру версии добавляется -preview.[number].[build]
. Например, 6.0.0-preview.5.21302.13
.
Сервисные версии
После выхода выпуска его ветви обычно перестают создавать ежедневные сборки и вместо них начинают формировать сервисные сборки. Для сервисных версий к номеру версии добавляется -servicing-[number]
. Например, 5.0.1-servicing-006924
.