Новые функции в среде выполнения и пакете 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.
Присоединитесь к серии встреч для создания масштабируемых решений искусственного интеллекта на основе реальных вариантов использования с другими разработчиками и экспертами.