nunit-console icon indicating copy to clipboard operation
nunit-console copied to clipboard

Version 4.0 Release Plan

Open CharliePoole opened this issue 6 months ago • 12 comments

Inspired by Terje, I'm going to use issues labeled "Release Plan" for... wait for it... Release Planning!

Unfortunately, I didn't do this before the just-released 4.0.0-beta.1, so I'll start with that.

Current status of that beta is...

  • It's released on GitHub, MyGet and NuGet. UPDATE: Now on Chocolatey as well.
  • ~~It's not released on Chocolatey.org and won't be, since they don't yet support semver 2.0. This will be one of the first things to deal with in the next beta.~~
  • The beta has a lot of breaking changes and they are documented in BREAKING_CHANGES.md. There will probably be a few more added in the next beta.

CharliePoole avatar Jun 26 '25 18:06 CharliePoole

@nunit/core-team @nunit/engine-team

As I start planning for the next beta, I'd like to identify any breaking changes, features and enhancements to be targeted. I like to get the "big stuff" into the plan up front and add smaller fixes as they are completed. I'll also be adding some issues related to building, packaging and publishing releases, based on my experience doing the first beta.

As a start, there are three more Breaking Changes and four Features defined for inclusion in 4.0. It would be nice to get about half of those done in the second beta. Please give me your suggestions.

Of course, if there are some issues NOT currently defined for 4.0, which ought to be, I'd like to know that too!

CharliePoole avatar Jun 26 '25 18:06 CharliePoole

@nunit/core-team @nunit/engine-team

I was able to do a quick fix to publish the release on chocolatey as well, using the SemVer 1.0 format version 4.0.0-beta001. I also replaced the Chocolatey package on the GitHub Release with that package.

I updated the status of beta 1 above to indicate that it is now complete.

On to the next set of features!

CharliePoole avatar Jun 28 '25 00:06 CharliePoole

Hello,

I hope its ok to post here, if not tell me and I will write a new issue.

I recently tried out the v4.0.0-beta.1 and I am missing the class NUnit3FrameworkDriver, previously located in nunit.engine.core.dll. I see that for net8, the NUnit3FrameworkDriver seems now to be located in nunit.agent.core.dll under the name NUnitFrameworkDriver. But I cannot find this assembly for net462.

Am I overseeing something? Wanted to be sure we can upgrade to 4.0.0 once in full release, but this would be a blocker for us.

z002Holpp avatar Jun 30 '25 12:06 z002Holpp

Hi Stefan! @z002Holpp

This is a good place to post queries about V4. If we need to change something, then we can create a separate issue.

My summary of breaking changes didn't discuss the drivers because they are at a very low level in the codebase. However, V4 has changes in the drivers...

  • They are no longer in the nunit.engine.core assembly, which no longer exists, but in nunit.agent.core. This is part of a substantial change still in process to separate the engine entirely from the agents.
  • Rather than having three different drivers, there is now a single driver, NUnitFrameworkDriver which uses conditional compilation to target .NET Framework 4.6.2, .NET Core 3.1, .NET 6.0 and .NET 8.0. Subsequent betas will probably drop 3.1 and 8.0 and may add 9.0. (The current 9.0 agent uses the 8.0 driver)

Does your question relate to the ongoing work on Hook Extensions? I had thought that related to the framework only.

CharliePoole avatar Jun 30 '25 15:06 CharliePoole

Hi @CharliePoole,

thanks for your fast reply. No, my question does not relate to Hook Extensions directly, but the we use the NUnitFrameworkDriver in the same project.

We are currently using the type NUnit3FrameworkDriver in target net462. However, if I download the NuGet package NUnit.Engine 4.0.0-beta.1 from NuGet.org, I see that there is a nunit.agent.core.dll in the net8.0 subfolder in the package, but not in the net462 subfolder.

As I understood from your previous reply, the NUnitFrameworkDriver will still be provided for net462. But where can I find it?

z002Holpp avatar Jul 01 '25 05:07 z002Holpp

Hi Stefan @z002Holpp,

Ah... There are a great many breaking changes in V4. You should start by reading BREAKING_CHANGES.md in the root of the beta1 release.

In this case, you are seeing a temporary anomaly. There really should be no agent.core reference in the engine at all but it is still being used by the .NET 8.0 build of the engine and will be removed in a future release. See #1699.

If you need nunit.agent.core.dll, you should use the NUnit.Agent.Core package, which targets all the runtimes listed in my earlier comment.

Charlie

CharliePoole avatar Jul 01 '25 07:07 CharliePoole

Hi @CharliePoole,

thanks for the hint, now I got it. Will there also be a beta of the NUnit(4)TestAdapter that uses the new Engine version?

Best, Stefan

z002Holpp avatar Jul 01 '25 12:07 z002Holpp

That's up to @OsirisTerje. IMO, the engine may no longer be needed for the adapter, since the host actually carries out most of the functions normally provided by the engine.

CharliePoole avatar Jul 01 '25 14:07 CharliePoole

Thanks @CharliePoole for the explanation, that clarified things now for me!

z002Holpp avatar Jul 02 '25 06:07 z002Holpp

@manfred-brands @stevenaw @mikkelbu @veleek

I haven't had any feedback from the @nunit/engine-team about the content of the second beta. I added a few items, mostly low-hanging fruit, and finished them, but I still need help in defining what should make the next beta.

Eventually, we need make the same decision for the full 4.0 release. What is listed for 4.0 is at least partly ancient history.

So please let me know what you'd add or remove from the next beta. Meanwhile, I'm gong to do some improvements to the build process and fix a few more issues. :-)

CharliePoole avatar Jul 05 '25 23:07 CharliePoole

Bumping here the question from #1743 for visibility. Main purpose is to clarify the options we have and the way forward.

We are using nunit-console through a Gradle plugin which downloads the zip, based on the configure version of the runner. With latest beta the zip is no longer delivered. Would you consider adding it back?

Thank you for your feedback

dfev77 avatar Jul 21 '25 05:07 dfev77

@dfev77 This issue is about release planning for existing, accepted changes. Individual requests are discussed on individual issues. I understand that even five days can seem long when you want an answer, but there are not a lot of people working on V4, so please try to be patient.

CharliePoole avatar Jul 21 '25 06:07 CharliePoole