Skip to content

Commit 3db96dd

Browse files
authored
added note about sdk 2.1 (#4385)
* added note aboud sdk 2.1 * feedback * feedback
1 parent 1d97130 commit 3db96dd

File tree

1 file changed

+34
-26
lines changed

1 file changed

+34
-26
lines changed

docs/core/versions/index.md

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: .NET Core versioning
33
description: Understand how .NET Core versioning works.
44
author: bleroy
55
ms.author: mairaw
6-
ms.date: 08/25/2017
6+
ms.date: 02/13/2018
77
ms.topic: article
88
ms.prod: .net-core
99
ms.devlang: dotnet
@@ -19,9 +19,13 @@ This article aims at clarifying how the .NET Core SDK and runtime are versioned.
1919

2020
There are lots of moving parts that version independently in .NET Core. However, starting with .NET Core 2.0, there is an easy to understand top-level version number that everybody understands to be *the* version of ".NET Core" as a whole. The rest of this document goes into the details of the versioning of all those parts. These details can be important if you're a package manager, for example.
2121

22+
> [!IMPORTANT]
23+
> The versioning details explained on this topic don't apply to the current version of the .NET Core SDK and runtime.
24+
> The version scheme is changing in future releases. You can see the current proposal at the [dotnet/designs](https://github.com/dotnet/designs/pull/29) repository.
25+
2226
## Versioning details
2327

24-
Starting with .NET Core 2.0, downloads show a single version number in their file name. The following version numbers were unified:
28+
With .NET Core 2.0, downloads show a single version number in their file name. The following version numbers were unified:
2529

2630
* The shared framework and associated runtime.
2731
* The .NET Core SDK and associated .NET Core CLI.
@@ -31,8 +35,8 @@ The use of a single version number makes it easier for users to know what versio
3135

3236
### Installers
3337

34-
Starting with .NET Core 2.0, downloads for our [daily builds](https://github.com/dotnet/core-setup#daily-builds) and [our releases](https://www.microsoft.com/net/download/core) adhere to a new naming scheme that is easier to understand.
35-
The installer UI in those downloads were also modified to clearly present the names and versions of the components being installed. In particular, titles now show the same version number that is in the download's file name.
38+
With .NET Core 2.0, downloads for the [daily builds](https://github.com/dotnet/core-setup#daily-builds) and [releases](https://www.microsoft.com/net/download/core) adhere to a new naming scheme that is easier to understand.
39+
The installer UI in those downloads was also modified to clearly present the names and versions of the components being installed. In particular, titles now show the same version number that is in the download's file name.
3640

3741
#### File name format
3842

@@ -84,7 +88,7 @@ It's also possible that .NET Core Tools need to be updated, without runtime chan
8488
#### Minimum package set
8589

8690
* `dotnet-runtime-[major].[minor]`: a runtime with the specified version (only the latest patch version for a given major+minor combination should be available in the package manager). New patch versions update the package, but new minor or major versions are separate packages.
87-
91+
8892
**Dependencies**: `dotnet-host`
8993

9094
* `dotnet-sdk`: the latest SDK. `update` rolls forward major, minor, and patch versions.
@@ -114,7 +118,7 @@ A general Docker tag naming convention is to place the version number before the
114118

115119
The SDK tags should be updated to represent the SDK version rather than Runtime.
116120

117-
It's also possible that we need to fix the .NET Core Tools but reship an existing runtime. In that case, the SDK version is increased (for example, to 2.1.2) and then the Runtime catches up the next time it ships (for example, both the Runtime and SDK ship the following time as 2.1.3).
121+
It's also possible that the .NET Core CLI tools (included in the SDK) are fixed but reship with an existing runtime. In that case, the SDK version is increased (for example, to 2.1.2), and then the Runtime catches up the next time it ships (for example, both the Runtime and SDK ship the following time as 2.1.3).
118122

119123
## Semantic Versioning
120124

@@ -124,26 +128,29 @@ It's also possible that we need to fix the .NET Core Tools but reship an existin
124128
MAJOR.MINOR.PATCH[-PRERELEASE-BUILDNUMBER]
125129
```
126130

127-
The optional `PRERELEASE` and `BUILDNUMBER` parts will never be part of supported releases, and only exist on nightly builds, locally built from source targets, and unsupported preview releases.
131+
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.
128132

129133
### How version numbers are incremented?
130134

131135
`MAJOR` is incremented when:
132-
- An old version is no longer supported.
133-
- A newer `MAJOR` version of an existing dependency is adopted.
134-
- The default setting of a compatibility quirk is changed to "off."
136+
137+
- An old version is no longer supported.
138+
- A newer `MAJOR` version of an existing dependency is adopted.
139+
- The default setting of a compatibility quirk is changed to "off."
135140

136141
`MINOR` is incremented when:
137-
- Public API surface area is added.
138-
- A new behavior is added.
139-
- A newer `MINOR` version of an existing dependency is adopted.
140-
- A new dependency is introduced.
141-
142+
143+
- Public API surface area is added.
144+
- A new behavior is added.
145+
- A newer `MINOR` version of an existing dependency is adopted.
146+
- A new dependency is introduced.
147+
142148
`PATCH` is incremented when:
143-
- Bug fixes are made.
144-
- Support for a newer platform is added.
145-
- A newer `PATCH` version of an existing dependency is adopted.
146-
- Any other change that doesn't fit one of the previous cases.
149+
150+
- Bug fixes are made.
151+
- Support for a newer platform is added.
152+
- A newer `PATCH` version of an existing dependency is adopted.
153+
- Any other change doesn't fit one of the previous cases.
147154

148155
When there are multiple changes, the highest element affected by individual changes is incremented, and the following ones are reset to zero. For example, when `MAJOR` is incremented, `MINOR` and `PATCH` are reset to zero. When `MINOR` is incremented, `PATCH` is reset to zero while `MAJOR` is left untouched.
149156

@@ -172,7 +179,7 @@ For more information, see [.NET Core Support Lifecycle Fact Sheet](https://www.m
172179

173180
.NET Core is made of the following parts:
174181

175-
- A host (also known as muxer): `dotnet.exe` with `hostfxr` policy libraries.
182+
- A host: either *dotnet.exe* for framework-dependent applications, or *\<appname>.exe* for self-contained applications.
176183
- An SDK (the set of tools necessary on a developer's machine, but not in production).
177184
- A runtime.
178185
- A shared framework implementation, distributed as packages. Each package is versioned independently, particularly for patch versioning.
@@ -200,7 +207,7 @@ Versioning for .NET Core metapackages is based on the .NET Core version they are
200207

201208
For instance, the metapackages in .NET Core 2.1.3 should all have 2.1 as their `MAJOR` and `MINOR` version numbers.
202209

203-
The patch version for the metapackage is incremented every time any referenced package is updated. Patch versions don't include an updated framework version. As a result, the metapackages aren't strictly SemVer-compliant because their versioning scheme doesn't represent the degree of change in the underlying packages, but primarily the API level.
210+
The patch version for the metapackage is incremented every time any referenced package is updated. Patch versions don't include an updated framework version. As a result, the metapackages aren't strictly SemVer-compliant because their versioning scheme doesn't represent the degree of change in the underlying packages, but primarily of the API level.
204211

205212
There are currently two primary metapackages for .NET Core:
206213

@@ -222,7 +229,7 @@ Target framework versions are updated when new APIs are added. They have no conc
222229

223230
## Versioning in practice
224231

225-
When you download .NET Core, the name of the file you download carries the version, for example, `dotnet-sdk-2.0.4-win10-x64.exe`.
232+
When you download .NET Core, the name of the downloaded file carries the version, for example, `dotnet-sdk-2.0.4-win10-x64.exe`.
226233

227234
There are commits and pull requests on .NET Core repos on GitHub on a daily basis, resulting in new builds of many libraries. It isn't practical to create new public versions of .NET Core for every change. Instead, changes are aggregated over an undetermined period of time (for example, weeks or months) before making a new public stable .NET Core version.
228235

@@ -247,7 +254,8 @@ Every time a new major version of .NET Core ships, the `MAJOR` version number ge
247254
The various metapackages are updated to reference the updated .NET Core library packages. The [`Microsoft.NETCore.App`](https://www.nuget.org/packages/Microsoft.NETCore.App) metapackage and the `netcore` target framework are versioned as a major update matching the `MAJOR` version number of the new release.
248255

249256
## See also
250-
[Target frameworks](../../standard/frameworks.md)
251-
[.NET Core distribution packaging](../build/distribution-packaging.md)
252-
[.NET Core Support Lifecycle Fact Sheet](https://www.microsoft.com/net/core/support)
253-
[.NET Core 2+ Version Binding](https://github.com/dotnet/designs/issues/3)
257+
258+
[Target frameworks](../../standard/frameworks.md)
259+
[.NET Core distribution packaging](../build/distribution-packaging.md)
260+
[.NET Core Support Lifecycle Fact Sheet](https://www.microsoft.com/net/core/support)
261+
[.NET Core 2+ Version Binding](https://github.com/dotnet/designs/issues/3)

0 commit comments

Comments
 (0)