Skip to content

Stop building console runner with .NET 2.0 #1232

@CharliePoole

Description

@CharliePoole

@rprouse @jnm2 @mikkelbu @OsirisTerje @nunit/engine-team @nunit/framework-team

I plan to stop using .NET 2.0 for the console runner and the engine proper (nunit.engine.dll).

This needs discussions on three points... (1) when to do it (2) what target should replace it and (3) what should we keep building in .NET 2.0 (if anything) in order to support tests.


When

Strictly speaking, this is a breaking change. Folks who want to run tests on a machine, which only has .NET 2.0 installed will no longer be able to do that. OTOH, it's hard to imagine that there are many such people around. Personally, I would loosen the rule of only doing breaking changes in major releases and include it in 3.16. OTOH, I don't feel strongly about the timing, especially if somebody can uncover a significant group of users who would be negatively affected. In that case it would become a 4.0 change.

Our decision on this point will affect what we do with respect to the other two points.

New Target

I would propose using 4.6.2 or higher. Since Microsoft support of these versions is tied to the underlying OS, we may want to have some discussion around this. Note that this issue is only about replacing .NET 2.0, so we aren't discussiong .NET Core versions. Creating a full-featured .NET Core console runner is a separate issue.

Running .NET 2.0 tests

One option is to say that we will only support .NET 2.0 (or 3.x) tests running under .NET 4.x. I think this might be a negative impact for some group of users, although probably relatively small. For 3.16, I would err on the side of caution, keeping a .NET 2.0 build of the nunit.engine.api and nunit.engine.core assemblies as well as the .NET 2.0 agents.

For .NET 4.0, I think that the 2.0 agent should be kept available as an extension (pluggable agent) and not delivered by default. Note that such an agent already exists. How to handle nunit.engine.api and nunit.engine.core in 4.0 will require some design work.


I'd appreciate your comments so I can better flesh out the contents of the 3.16 release!

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions