Skip to content

Commit

Permalink
update per feedback on PR #6081
Browse files Browse the repository at this point in the history
Moving those changes to a new branch and PR.
  • Loading branch information
BillWagner committed Jul 13, 2018
1 parent 12a1b3d commit 03a22a0
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 25 deletions.
2 changes: 1 addition & 1 deletion docs/core/tutorials/metapackages.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

### Shipping a patch release

After shipping a major release of .NET Core, such as version 2.0.0, patch-level changes are made to .NET Core libraries to fix bugs and improve performance and reliability. That means that no new APIs are introduced. The various metapackages are updated to reference the updated .NET Core library packages. The metapackages are versioned as patch updates (`MAJOR.MINOR.PATCH`). Target frameworks are never updated as part of patch releases. A new .NET Core distribution is released with a version number that matches that of the `Microsoft.NETCore.App` metapackage.
After shipping a major or minor release of .NET Core, such as version 2.0.0, patch-level changes are made to .NET Core libraries to fix bugs and improve performance and reliability. That means that no new APIs are introduced. The various metapackages are updated to reference the updated .NET Core library packages. The metapackages are versioned as patch updates (`MAJOR.MINOR.PATCH`). Target frameworks are never updated as part of patch releases. A new .NET Core distribution is released with a version number that matches that of the `Microsoft.NETCore.App` metapackage.

### Shipping a minor release

Expand Down
2 changes: 1 addition & 1 deletion docs/core/versions/_trash.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ Note: [`Microsoft.NETCore.Portable.Compatibility`](https://www.nuget.org/package

### Target frameworks

Target framework versions are updated when new APIs are added. They have no concept of patch version, since they represent API shape and not implementation concerns. Major and minor versioning follows the SemVer rules specified earlier, and coincides with the `MAJOR` and `MINOR` numbers of the .NET Core distributions that implement them.
Target framework versions are updated when new APIs are added. They have no concept of patch version, since they represent API shape and not implementation concerns. Major and minor versioning follows the SemVer rules specified earlier, and coincides with the `MAJOR` and `MINOR` numbers of the .NET Core distributions that implement them or the .NET Standard version that defines them.

## Versioning in practice

Expand Down
40 changes: 20 additions & 20 deletions docs/core/versions/version-history.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Version numbers for the .NET Core are challenging because .NET Core SDK and .NET

2.0.0 forced version alignment and this proceeded smoothly for one release. In December 2017 .NET Core SDK had a feature release, with no corresponding release in the .NET Core Runtime. The team chose goals 1 and 3, losing alignment between the .NET Core Runtime and SDK and resulted in a several .NET Core SDK 2.1.x versions that were released before .NET Core Runtime 2.1. Since the SDK is not forwards compatible, these 2.1.x SDK versions could not target .NET Core Runtime 2.1. The team responded to the considerable confusion this caused by switching to goals 1 and 2, abandoning semantic versioning as described in [.NET Core versioning]([[ index.md]]).

Because the timing of the decision to abandon semantic versioning was made between , there were transitional releases in the 2.1.10x and 2.1.20x version number ranges that can also not target .NET Core Runtime 2.1.
Because the timing of the decision to abandon semantic versioning, there were transitional releases in the 2.1.10x and 2.1.20x version number ranges that can also not target .NET Core Runtime 2.1.

The first two digits of the version numbers realign with the 2.1.0 version of the .NET Core Runtime and the 2.1.300 version of the .NET Core SDK.

Expand All @@ -21,25 +21,25 @@ Evaluating [releases.json](https://github.com/dotnet/core/blob/master/release-no
| Date | .NET Core SDK(4) | .NET Core Runtimes | Contains C# | Contains VB | Notes |
|------------|------------------|--------------------|-------------|-------------|-------|
| 2017-03-07 | 1.0.1 | 1.0.4,1.1.1 | 7.0 | 15.0 | |
| 2017-05-09 | 1.0.4 | 1.0.5, 1.1.2 | | | |
| 2017-09-21 | 1.1.4 | 1.0.7, 1.1.4 | | | |
| 2017-11-14 | 1.1.7 | 1.0.8, 1.1.5 | | | |
| 2017-11-14 | 1.1.7 | 1.0.9, 1.1.6 | | | |
| 2018-03-13 | 1.1.8 | 1.0.10, 1.1.7 | | | |
| 2018-04-17 | 1.1.9 | 1.0.11, 1.1.8 | | | |
| 2017-08-14 | 2.0.0 | 2.0.0 | 7.1 | | |
| 2017-11-14 | 2.0.3 | 2.0.3 | 7.1 | 15.1 | |
| 2017-12-04 | 2.1.2 | 2.0.3 | 7.1 | 15.1 | (1) |
| 2018-01-09 | 2.1.4 | 2.0.5 | 7.1 | 15.1 | (1) |
| 2018-03-13 | 2.1.100 | 2.0.5 | 7.2 | 15.2 | (1,2) |
| 2018-03-13 | 2.1.101 | 2.0.6 | 7.2 | 15.2 | (1,2) |
| 2018-03-19 | 2.1.102 | 2.0.6 | 7.2 | 15.2 | (1,2) |
| 2018-03-22 | 2.1.103 | 2.0.6 | 7.2 | 15.2 | (1,2) |
| 2018-04-04 | 2.1.104 | 2.0.6 | 7.2 | 15.2 | (1,2) |
| 2018-04-27 | 2.1.105 | 2.0.7 | 7.2 | 15.2 | (1,2) |
| 2018-05-08 | 2.1.200 | 2.0.8 | 7.2 | 15.2 | (1,2) |
| 2018-05-21 | 2.1.201 | 2.0.8 | 7.2 | 15.2 | (1,2) |
| 2018-05-30 | 2.1.300 | 2.1.0 | 7.3 | 15.3 | (3) |
| 2017-05-09 | 1.0.4 | 1.0.5, 1.1.2 | 7.0 | 15.0 | |
| 2017-09-21 | 1.1.4 | 1.0.7, 1.1.4 | 7.0 | 15.0 | |
| 2017-11-14 | 1.1.7 | 1.0.8, 1.1.5 | 7.0 | 15.0 | |
| 2017-11-14 | 1.1.7 | 1.0.9, 1.1.6 | 7.0 | 15.0 | |
| 2018-03-13 | 1.1.8 | 1.0.10, 1.1.7 | 7.0 | 15.0 | |
| 2018-04-17 | 1.1.9 | 1.0.11, 1.1.8 | 7.0 | 15.0 | |
| 2017-08-14 | 2.0.0 | 2.0.0 | 7.1 | 15.3 | |
| 2017-11-14 | 2.0.3 | 2.0.3 | 7.1 | 15.3 | |
| 2017-12-04 | 2.1.2 | 2.0.3 | 7.1 | 15.3 | (1) |
| 2018-01-09 | 2.1.4 | 2.0.5 | 7.1 | 15.3 | (1) |
| 2018-03-13 | 2.1.100 | 2.0.5 | 7.2 | 15.5 | (1,2) |
| 2018-03-13 | 2.1.101 | 2.0.6 | 7.2 | 15.5 | (1,2) |
| 2018-03-19 | 2.1.102 | 2.0.6 | 7.2 | 15.5 | (1,2) |
| 2018-03-22 | 2.1.103 | 2.0.6 | 7.2 | 15.5 | (1,2) |
| 2018-04-04 | 2.1.104 | 2.0.6 | 7.2 | 15.5 | (1,2) |
| 2018-04-27 | 2.1.105 | 2.0.7 | 7.2 | 15.5 | (1,2) |
| 2018-05-08 | 2.1.200 | 2.0.8 | 7.2 | 15.5 | (1,2) |
| 2018-05-21 | 2.1.201 | 2.0.8 | 7.2 | 15.5 | (1,2) |
| 2018-05-30 | 2.1.300 | 2.1.0 | 7.3 | 15.5 | (3) |

(1) These versions of .NET Core SDK 2.1.x cannot build apps targeting .NET Core Runtime 2.1.x
(2) The new version number scheme was decided at the start of 2018. However, there were two feature level releases before .NET Core Runtime 2.10 released. Thus, 2.1.10x and 2.20x represent a transition period.
Expand Down
6 changes: 3 additions & 3 deletions docs/core/versions/versioning-standard.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,18 @@ Your magic stuff

# Versioning .NET Standard

.NET Standard consists of a reference library and implementations specific to each platform. The reference library contains the definition of .NET Standard. Each implementation fulfills the .NET Standard contract on the specific platform. .NET Standard usually refers to the reference library, and the implementation is detail of the corresponding runtime.
.NET Standard consists of a .net reference assembly and implementations specific to each platform. The reference assembly contains the definition of .NET Standard. Each implementation fulfills the .NET Standard contract on the specific platform. .NET Standard usually refers to the reference library, and the implementation is detail of the corresponding runtime.

The .NET Standard reference implementation uses a `MAJOR.MINOR` versioning scheme. `PATCH` level isn't useful for .NET Standard because if exposes only an API (no implementation) and by definition any change to the API would represent a change in the feature set, and thus a minor version bump.

The implementations on each runtime may version, but this would normally be part of the runtime release, and thus not evident to the programmers using .NET Standard on that platform.

There is no real coupling between .NET Standard versions and .NET Core versions: .NET Core 2.0 happens to implement .NET Standard 2.0, but .NET Core 2.1 also implements .NET Standard 2.0. .NET Core will ship new APIs not yet included in .NET Standard. .NET Standard is also a concept that applies to other targets, such as .NET Framework or Mono, even if its inception happened to coincide with that of .NET Core. If .NET Standard 2.1 ships, .NET Core 2.1 will not support it.
Each version of .NET Core implements a version of .NET standard. .NET Standard and .NET Core version independently. It's a coincidence that .NET Core 2.0 implements .NET Standard 2.0. .NET Core 2.1 also implements .NET Standard 2.0. .NET Core will support future versions of .NET Standard as they become available.

| .NET Core | .NET Standard |
|-----------|---------------|
| 1.0 | up to 1.6 |
| 2.0 | up to 2.0 |
| 2.1 | up to 2.1 |
| 2.1 | up to 2.0 |

## See also

0 comments on commit 03a22a0

Please sign in to comment.