Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update release notes format #6100

Merged
merged 25 commits into from
Mar 31, 2021
Merged

Conversation

richlander
Copy link
Member

@richlander richlander commented Mar 29, 2021

There are a few things that I thought could be improved with release notes that consistently cause me friction in using them.

Here are the problems I wanted to solve:

Solutions (in the PR):

  • Each release defines the set of package dependencies, generally, and for multiple distros. This will include enabling people to contributes dependencies for distros we don't actually support.
  • Instructions will be moved to the release directory and not per update. This will (A) enable us to improve and refine a single document over the course of the release, and (B) provide people with a consistent link target.
  • Updated the releases table to something that (at least) I like.
  • I also deleted release notes links to preview releases. They are unnecessary. I deleted just the links not the release notes themselves.

Still left to do (can happen in another PR):

  • Stop producing the [version-number]-install-instructions.md doc for updates.
  • Delete the other content I referenced.
  • Add package installation instructions (for .NET dependencies) for other (at least the supported) distros.
  • Validate that the installation instructions are good/final.
  • Define a relationship between these installation docs and docs.ms.com/dotnet.
  • Make similar changes to .NET 5 and .NET Core 3.1.
  • Update the 6.0/linux-install.md doc.
  • Add the remainder of support distros to 6.0/linux-packages.md. Perhaps folks can help me with the RHEL ecosystem distros.

- [GNU C Library (glibc)](https://www.gnu.org/software/libc/libc.html)
- [GNU C++ Library](https://gcc.gnu.org/onlinedocs/libstdc++/)
- [GCC low-level runtime library](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html)
- [ICU](http://site.icu-project.org/)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ICU is optional.

bash is (I think) not optional for dotnet.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It isn't optional by default, but yes, I'll document invariant mode.

Is Kerberos optional?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is Kerberos optional?

no

Copy link
Member

@MichaelSimons MichaelSimons left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the improvements your are proposing.

os-lifecycle-policy.md Outdated Show resolved Hide resolved
os-lifecycle-policy.md Outdated Show resolved Hide resolved
release-notes/2.1/README.md Outdated Show resolved Hide resolved
release-notes/2.1/README.md Outdated Show resolved Hide resolved
release-notes/6.0/README.md Outdated Show resolved Hide resolved
release-notes/6.0/install-windows.md Outdated Show resolved Hide resolved
@@ -0,0 +1,102 @@
# .NET 6 installation instructions

Concise install instructions for Windows are provided in this document, and may be augmented in [release notes](README.md) for a given update. Complete [.NET installation instructions for Windows, macOS, and Linux](https://docs.microsoft.com/dotnet/core/install/) are provided for supported releases in [.NET documentation](https://docs.microsoft.com/dotnet).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Concise instructions are also included for mac and linux.
  2. Should the binary installation instructions be included in each of the OS specific instructions? It feels valuable to include the full set of installation types in one doc per OS.
  3. The binary archive instructions don't necessarily feel like the most concise especially to noobs that may be more uncomfortable with cmd line instructions.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Fixed.


If your app relies on `https` endpoints, you'll also need to install `ca-certificates`.

## Alpine 3.13
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The distros listed here don't seem to match the distros listed in the supported-os.md. This seems like a disconnect.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right. I'll be adding those. I wasn't going to block the first merge on that. I was also going to farm some of that out. It will be much faster for someone else to add the RHEL ecosystem information, for example.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm good with that.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey, @richlander I can help with writing up the dependencies for RHEL/Fedora. Is there an application/test case I can use to verify that my list of dependencies is minimal but sufficient?

zlib1g \
```

## Arch Linux (rolling build)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given this is not supported, I find it strange to see listed here at the same level as the other distros. If you feel strongly about including it, maybe it should be under a community supported heading.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like to encourage the community to (A) to support itself in these docs, (B) collect signal on which distros people want us to support.

Yes. I was wording about a "community supported" heading. I'll do that.

@@ -1,14 +1,21 @@
# .NET Core Release Notes
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The need for both the README.md and releases.md doesn't seem strong? Is there a way to eliminate one? I suppose that is difficult without potential breaking links?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I spent a bunch of time thinking about that, when I first added releases.md. I came down to this configuration being best.

#5819 (comment)

@@ -4,16 +4,18 @@

Each supported operating system has a lifecycle defined by its sponsor organization (for example, Microsoft, Red Hat, Debian, or Apple). The .NET team applies each of those lifecycle schedules to inform adding and removing support for operating system versions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we need to be crisp on what classifications we're adhering to from each of these platforms. For example, Debian has three support levels: EOL, EOL LTS, and EOL ELTS. Which of those do we classify as being not supported for .NET? That needs to be described for all platforms.

In addition, not all our assets follow this support policy. For Docker, there is a more restrictive support policy. Should that be linked to from here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, some definition would be good. The original 2nd paragraph (marked as removed in this or) included additional detail that supported ended when an OS version went out of mainstream or free support.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a link to the Docker policy.

I added a policy section.

@@ -1,6 +1,6 @@
# .NET 5 - Supported OS versions

[Microsoft supports](https://github.com/dotnet/core/blob/main/microsoft-support.md) .NET 5 with multiple operating systems, in alignment with official operating system lifecycle and distribution.
[.NET 5](README.md) is supported on multiple operating systems per their lifecycle.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link to os-lifecycle-policy.md

Comment on lines 32 to 34
1. Create a directory to use for the download location and change into that directory. For example `mkdir $HOME/dotnet_install && cd $HOME/dotnet_install`
2. Run `curl -L https://aka.ms/install-dotnet-preview -o install-dotnet-preview.sh`
3. Run the script with `sudo bash install-dotnet-preview.sh`
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be simplified to a one-line install:

curl -L https://aka.ms/install-dotnet-preview | sudo bash


`sudo snap install dotnet-sdk --channel=6.0/beta --classic`

When .NET Core is installed using the Snap package, the default .NET Core command is `dotnet-sdk.dotnet`, as opposed to just `dotnet`. The benefit of the namespaced command is that it will not conflict with a globally installed .NET Core version you may have. This command can be aliased to `dotnet` with:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this is .NET 6 we're talking about, remove references to ".NET Core".

release-notes/6.0/install.md Outdated Show resolved Hide resolved
@@ -0,0 +1,99 @@
# Linux package dependencies

.NET 6 has several dependencies that must be satisfied to run .NET apps. The commands to install these libraries are listed for multiple distributions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's overloading of the word "distribution" in these changes that can be ambiguous in some cases. I would suggest using "Linux distribution" in cases like this.

- [GNU C Library (glibc)](https://www.gnu.org/software/libc/libc.html)
- [GNU C++ Library](https://gcc.gnu.org/onlinedocs/libstdc++/)
- [GCC low-level runtime library](https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html)
- [ICU](http://site.icu-project.org/)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is Kerberos optional?

no

zlib
```

## Debian 10 "bullseye"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Distro code names should be capitalized.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like Ubuntu does that and Debian doesn't.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, looks like there's not much consistency: https://wiki.debian.org/DebianBullseye

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just do what you suggested and call it good.

@@ -4,16 +4,18 @@

Each supported operating system has a lifecycle defined by its sponsor organization (for example, Microsoft, Red Hat, Debian, or Apple). The .NET team applies each of those lifecycle schedules to inform adding and removing support for operating system versions.

When an operating system version goes out of "mainstream" or "free" support, we stop testing that version and providing support for that version. This means that users will need to move forward to a supported operating system version to get support.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Per the comments above, some details around how we decide the OS support period are helpful.

richlander and others added 6 commits March 30, 2021 13:08
Co-authored-by: Michael Simons <msimons@microsoft.com>
Co-authored-by: Matt Thalman <mthalman@microsoft.com>
* [.NET release policies](release-policies.md)
* [.NET release lifecycle](releases.md)
* [Operating system lifecycle](os-lifecycle-policy.md).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we rename to: ".NET Supported Operating System lifecycle" to follow the pattern of the bullets listed above. Plus this is more descriptive

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Contributor

@mairaw mairaw left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments...

* [.NET 5 supported OS versions](release-notes/5.0/5.0-supported-os.md)
* [.NET Core 3.1 supported OS versions](release-notes/3.1/3.1-supported-os.md)
* [.NET Core 2.1 supported OS versions](release-notes/2.1/2.1-supported-os.md)

The following documents define (historical) operating system support for out-of-support .NET Core versions:
## End-of-life .NET versions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're using the term out of support versions on pages like https://dotnet.microsoft.com/download/dotnet

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

os-lifecycle-policy.md Outdated Show resolved Hide resolved
release-notes/2.1/README.md Outdated Show resolved Hide resolved
* [.NET release policies](release-policies.md)
* [.NET release lifecycle](releases.md)
* [Operating system lifecycle](os-lifecycle-policy.md).

Knowing key dates for a product lifecycle helps you make informed decisions about when to upgrade or make other changes to your software and computing environment.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we be linking to https://dotnet.microsoft.com/platform/support/policy from this article?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. Fixed.

release-notes/3.1/README.md Outdated Show resolved Hide resolved
release-notes/6.0/install-macos.md Outdated Show resolved Hide resolved
release-notes/6.0/install-windows.md Outdated Show resolved Hide resolved
release-notes/6.0/install.md Outdated Show resolved Hide resolved
- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications.
- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications.

You are recommended to install the .NET SDK to develop and build applications, and to install one of the runtimes packages (like ASP.NET Core) to (exclusively) run applications.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are recommended is a bit strange...

I'd say "We recommend that you install..."

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

release-policies.md Outdated Show resolved Hide resolved
Co-authored-by: Maira Wenzel <mairaw@microsoft.com>
- .NET Runtime: includes the .NET runtime and libraries, enabling running console applications.
- ASP.NET Core Runtime: includes the .NET and ASP.NET Core runtimes, enabling running console, and web applications.

You are recommended to install the .NET SDK to develop and build applications, and to install one of the runtimes packages (like ASP.NET Core) to exclusively run applications.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording? Perhaps: "We recommend you install..." Also same wording for the 3 other variants of the install*.md docs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call.

richlander and others added 3 commits March 30, 2021 14:38
@richlander richlander merged commit d05daa6 into dotnet:main Mar 31, 2021
@richlander richlander deleted the relnotes-refresh branch March 31, 2021 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants