Version 4.0 Release Plan
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.
@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!
@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!
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.
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.coreassembly, which no longer exists, but innunit.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,
NUnitFrameworkDriverwhich 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.
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?
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
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
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.
Thanks @CharliePoole for the explanation, that clarified things now for me!
@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. :-)
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 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.