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

Create platform-support.md #1421

Merged
merged 7 commits into from
Jun 30, 2024
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions platform-support.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Platform Support Lifecycle

"Platform Support" for this project includes three somewhat different things:
1. Test assembly target platforms, that is, the target platforms for which tests may be written.
2. The target platforms under which those tests will actually run, which is equivalent to the list of agents we provide.
3. The minimum platforms required to execute the runner and engine themselves, without regard to the tests being run.

## Test Assembly Target Runtimes

We currently support execution of tests written to target any version of the .NET Framework >= 2.0 and any version
of .NET Core >= 3.1, including .NET 5.0 and higher. We will continue to support tests targeting runtimes which are
out of support from Microsoft's perspective, so long as we are able to do so without significant additional effort
and without security risk. If no agent is available for a runtime, the tests will be run on the closest higher
runtime available.

## Agents Provided

We currently supply a fairly large selection of agents with the console runner:
* .NET Framework 2.0
* .NET Framework 4.6.2
* ,NET Core 3.1
* .NET 5.0
* .NET 6.0
* .NET 7.0
* .NET 8.0 (coming in version 3.18.0)

As a general policy, we will continue to provide agents for any Microsoft runtime for at least six months after its
official end of life. This is intended to support continued testing of legacy applications while users are in the
process of upgrade. However, agents for runtimes which have been declared a security risk may be removed immediately.

Based on that policy and the planned end-of-life dates for runtimes, we expect to retire agents on or after the
dates listed in the following table.

| Runtime | Microsoft<br>End of Support | Agent Retirement | Notes |
| -------------------- | --------------- | --------------------- | --- |
| .NET Framework 2.0 | July, 2011 | July, 2024 | Will be removed in version 3.18.0
| .NET Framework 4.6.2 | January, 2027 | after July, 2027 | May be upgraded to 4.8.1 before retirement date |
| .NET Core 3.1 | December, 2022 | after December, 2024 |
| .NET 5.0 | May, 2022 | July, 2024 | Will be removed in version 3.18.0
| .NET 6.0 | November, 2024 | after May, 2025 |
| .NET 7.0 | May, 2024 | after November, 2024 |
| .NET 8.0 | November, 2027 | after May, 2027 |

**NOTES:**
1. Some discussion is needed before we can determine when the .NET Framework agents will be removed and how they will be replaced.
2. July, 2024 is the estimated release date of version 3.18.0 of the console runner.

## Required Runtimes

The console runner and engine target .NET Framework 4.6.2, so that runtime or greater is required to execute any tests at all
without loss of features. In individual cases, it may be possible to run using a lesser version of .NET 4.x. It's possible
that we may require a higher level of the framework in a future 3.x release.