Visão geral de como o .NET Core tem a versão controladaOverview of how .NET Core is versioned

O .NET Core refere-se ao Runtime do .NET Core e ao SDK do .NET Core, que contém as ferramentas que necessárias para desenvolver aplicativos..NET Core refers to the .NET Core Runtime and the .NET Core SDK, which contains the tools you need to develop applications. Os SDKs do .NET Core são projetados para funcionar com qualquer versão anterior do Runtime do .NET Core..NET Core SDKs are designed to work with any previous version of the .NET Core Runtime. Este artigo explica o runtime e a estratégia de versão do SDK.This article explains the runtime and the SDK version strategy. Uma explicação de números de versão do .NET Standard pode ser encontrada no artigo que faz a introdução do .NET Standard.An explanation of version numbers for .NET Standard can be found in the article introducing .NET Standard.

O Runtime do .NET Core e o SDK do .NET Core adicionam novos recursos em uma taxa diferente – em geral, o SDK do .NET Core fornece ferramentas atualizadas mais rapidamente do que o Runtime do .NET Core altera o runtime que você usa em produção.The .NET Core Runtime and .NET Core SDK add new features at a different rate - in general the .NET Core SDK provides updated tools more quickly than the .NET Core Runtime changes the runtime you use in production.

Detalhes de controle de versãoVersioning details

O ".NET Core 2.1" refere-se ao número de versão do Runtime do .NET Core.".NET Core 2.1" refers to the .NET Core Runtime version number. O Runtime do .NET Core tem uma abordagem principal/secundária/de patch para o controle de versão que segue o controle de versão semântico.The .NET Core Runtime has a major/minor/patch approach to versioning that follows semantic versioning.

O SDK do .NET Core não segue o controle de versão semântico.The .NET Core SDK doesn't follow semantic versioning. O SDK do .NET Core libera mais rapidamente e suas versões devem comunicar tanto o runtime alinhado quanto as versões de patch e a própria versão secundária do SDK.The .NET Core SDK releases faster and its versions must communicate both the aligned runtime and the SDK's own minor and patch releases. As duas primeiras posições da versão do SDK do .NET Core estão bloqueadas no Runtime do .NET Core com que foi lançado.The first two positions of the .NET Core SDK version are locked to the .NET Core Runtime it released with. Cada versão do SDK pode criar aplicativos para esse runtime ou qualquer versão inferior.Each version of the SDK can create applications for this runtime or any lower version.

A terceira posição do número de versão do SDK comunica o número de patch e da versão secundária.The third position of the SDK version number communicates both the minor and patch number. A versão secundária é multiplicada por 100.The minor version is multiplied by 100. Versão secundária 1, versão de patch 2 seria representada como 102.Minor version 1, patch version 2 would be represented as 102. Os últimos dois dígitos representam o número de patch.The final two digits represent the patch number. Por exemplo, a versão do .NET Core 2.2 pode criar versões, como a tabela a seguir:For example, the release of .NET Core 2.2 may create releases like the following table:

AlteraçãoChange Runtime do .NET Core.NET Core Runtime SDK do .NET Core (*).NET Core SDK (*)
Versão inicialInitial release 2.2.02.2.0 2.2.1002.2.100
Patch do SDKSDK Patch 2.2.02.2.0 2.2.1012.2.101
Runtime e Patch do SDKRuntime and SDK Patch 2.2.12.2.1 2.2.1022.2.102
Alteração de Recurso do SDKSDK Feature change 2.2.12.2.1 2.2.2002.2.200

(*) Este gráfico usa o tempo de execução do .NET Core 2,2 como o exemplo porque um artefato histórico significava que o primeiro SDK para .NET Core 2,1 é 2.1.300.(*) This chart uses the 2.2 .NET Core Runtime as the example because a historic artifact meant the first SDK for .NET Core 2.1 is 2.1.300. Para obter mais informações, veja a seleção de versão do .NET Core.For more information, See the .NET Core version selection.

OBSERVAÇÕES:NOTES:

  • Se o SDK tiver 10 atualizações de recurso antes de uma atualização de recurso de runtime, os números de versão serão passados na série 1000 com números como 2.2.1000 de acordo com a versão do recurso 2.2.900 a seguir.If the SDK has 10 feature updates before a runtime feature update, version numbers roll into the 1000 series with numbers like 2.2.1000 as the feature release following 2.2.900. Essa situação não deve ocorrer.This situation isn't expected to occur.
  • As versões de patch 99 sem uma versão do recurso não ocorrerão.99 patch releases without a feature release won't occur. Se uma versão se aproximar desse número, ela forçará uma versão do recurso.If a release approaches this number, it forces a feature release.

Você poderá ver mais detalhes na proposta inicial no repositório dotnet/designs.You can see more details in the initial proposal at the dotnet/designs repository.

Controle de versão semânticoSemantic versioning

O Runtime do .NET Core se adere ao SemVer (Controle de Versão Semântico), adotando o uso do controle de versão do MAJOR.MINOR.PATCH, usando as várias partes do número de versão para descrever o grau e o tipo de alteração.The .NET Core Runtime roughly adheres to Semantic Versioning (SemVer), adopting the use of MAJOR.MINOR.PATCH versioning, using the various parts of the version number to describe the degree and type of change.

MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]

As partes PRERELEASE e BUILDNUMBER opcionais nunca farão parte das versões compatíveis e existem apenas em builds noturnos, compilados localmente de destinos de origem e versões prévias sem suporte.The optional PRERELEASE and BUILDNUMBER parts are never part of supported releases and only exist on nightly builds, local builds from source targets, and unsupported preview releases.

Entender as alterações do número de versão do runtimeUnderstand runtime version number changes

MAJOR é incrementado quando:MAJOR is incremented when:

  • Ocorrem alterações significativas no produto ou uma nova direção de produto.Significant changes occur to the product, or a new product direction.
  • Alterações da falha foram identificadas.Breaking changes were taken. Há um alto padrão para aceitar alterações da falha.There's a high bar to accepting breaking changes.
  • Não há mais suporte para uma versão mais antiga.An old version is no longer supported.
  • Uma versão MAJOR mais nova de uma dependência existente é adotada.A newer MAJOR version of an existing dependency is adopted.

MINOR é incrementado quando:MINOR is incremented when:

  • Uma área de superfície de API pública é adicionada.Public API surface area is added.
  • Um novo comportamento é adicionado.A new behavior is added.
  • Uma versão MINOR mais nova de uma dependência existente é adotada.A newer MINOR version of an existing dependency is adopted.
  • Uma nova dependência é introduzida.A new dependency is introduced.

PATCH é incrementado quando:PATCH is incremented when:

  • Correções de bug são feitas.Bug fixes are made.
  • O suporte para uma plataforma mais recente é adicionado.Support for a newer platform is added.
  • Uma versão PATCH mais nova de uma dependência existente é adotada.A newer PATCH version of an existing dependency is adopted.
  • Qualquer outra alteração que não se enquadre em um dos casos anteriores.Any other change doesn't fit one of the previous cases.

Quando há várias alterações, o elemento mais alto afetado por alterações individuais é incrementado e os seguintes são redefinidos como zero.When there are multiple changes, the highest element affected by individual changes is incremented, and the following ones are reset to zero. Por exemplo, quando MAJOR é incrementado, MINOR e PATCH são redefinidos como zero.For example, when MAJOR is incremented, MINOR and PATCH are reset to zero. Quando MINOR é incrementado, PATCH é redefinido como zero enquanto MAJOR permanece inalterado.When MINOR is incremented, PATCH is reset to zero while MAJOR is left untouched.

Números de versão nos nomes de arquivoVersion numbers in file names

Os arquivos baixados para .NET Core têm a versão, por exemplo, dotnet-sdk-2.1.300-win10-x64.exe.The files downloaded for .NET Core carry the version, for example, dotnet-sdk-2.1.300-win10-x64.exe.

Versões préviasPreview versions

As versões prévias têm um -preview[number]-([build]|"final") anexado à versão.Preview versions have a -preview[number]-([build]|"final") appended to the version. Por exemplo, 2.0.0-preview1-final.For example, 2.0.0-preview1-final.

Versões de manutençãoServicing versions

Depois que uma versão sai, os branches de versão geralmente param de produzir builds diários e, em vez disso, iniciam a produção de builds de manutenção.After a release goes out, the release branches generally stop producing daily builds and instead start producing servicing builds. As versões de manutenção têm um -servicing-[number] anexado à versão.Servicing versions have a -servicing-[number] appended to the version. Por exemplo, 2.0.1-servicing-006924.For example, 2.0.1-servicing-006924.

Relacionamento com versões do .NET StandardRelationship to .NET Standard versions

O .NET standard consiste em um assembly de referência do .NET..NET Standard consists of a .NET reference assembly. Há várias implementações específicas para cada plataforma.There are multiple implementations specific to each platform. O assembly de referência contém a definição das APIs do .NET que fazem parte de uma determinada versão do .NET Standard.The reference assembly contains the definition of .NET APIs which are part of a given .NET Standard version. Cada implementação atende o contrato do .NET Standard na plataforma específica.Each implementation fulfills the .NET Standard contract on the specific platform. Você pode aprender mais sobre o .NET Standard no artigo sobre .NET Standard no Guia do .NET.You can learn more about .NET Standard in the article on .NET Standard in the .NET Guide.

O assembly de referência do .NET Standard usa um esquema de controle de versão MAJOR.MINOR.The .NET Standard reference assembly uses a MAJOR.MINOR versioning scheme. O nível PATCH não é útil para o .NET Standard porque expõe apenas uma especificação de API (nenhuma implementação) e por definição, qualquer alteração à API representaria uma alteração no conjunto de recursos e, portanto, uma nova versão MINOR.PATCH level isn't useful for .NET Standard because it exposes only an API specification (no implementation) and by definition any change to the API would represent a change in the feature set, and thus a new MINOR version.

As implementações em cada plataforma podem ser atualizadas, normalmente como parte da versão de plataforma e isso, portanto, não é evidente para os programadores que usam o .NET Standard nessa plataforma.The implementations on each platform may be updated, typically as part of the platform release, and thus not evident to the programmers using .NET Standard on that platform.

Cada versão do .NET Core implementa uma versão do .NET Standard.Each version of .NET Core implements a version of .NET Standard. Implementar uma versão do .NET Standard implica o suporte para as versões anteriores do .NET Standard.Implementing a version of .NET Standard implies support for previous versions of .NET Standard. Versão independente do .NET Standard e do .NET Core..NET Standard and .NET Core version independently. É uma coincidência que o .NET Core 2.0 implemente o .NET Standard 2.0.It's a coincidence that .NET Core 2.0 implements .NET Standard 2.0. O .NET Core 2.1 também implementa o .NET Standard 2.0..NET Core 2.1 also implements .NET Standard 2.0. O .NET Core dará suporte a versões futuras do .NET Standard conforme se tornam disponíveis..NET Core will support future versions of .NET Standard as they become available.

.NET Core.NET Core .NET Standard.NET Standard
1.01.0 até 1.6up to 1.6
2.02.0 até 2.0up to 2.0
2.12.1 até 2.0up to 2.0
2.22.2 até 2.0up to 2.0
3.03.0 até 2,1up to 2.1

Veja tambémSee also