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

Redesign API structure/Extension loading #885

Open
ChrisMaddock opened this issue Jan 30, 2021 · 2 comments
Open

Redesign API structure/Extension loading #885

ChrisMaddock opened this issue Jan 30, 2021 · 2 comments

Comments

@ChrisMaddock
Copy link
Member

In the v3 stream, there's been a long standing issue with API versioning that I think is best fixed with a breaking change as part of v4. Issue reference at #826.

Here's the changes I propose to fix this:

  • We split the nunit.engine.api.dll assembly into smaller components.
  • nunit.engine.api.dll becomes dedicated solely to the API's required by runners to access and utilise the engine. We start to increment the version of this assembly with every new version of the engine.
  • We create an API assembly specific to each extension interface, versioned at 1.0, and only incremented when breaking changes to an extension interface need to be made. (Hopefully not until v5.0 - however this structure would allow us to make these changes causing minimum disruption if required.)
  • There may be a need for a general extension api assembly to contain functionality shared by all known extension interfaces, also versioned as 1.0. I'm hoping we can architect that out, and avoid the need for it.
  • Extensions should start to be packaged with the version of the API assemblies that the reference, rather than relying on the engine to be packaged with all versions.
@CharliePoole
Copy link
Collaborator

Nice idea. I'll add this to my pluggable agent experimentation.

@ChrisMaddock
Copy link
Member Author

Plans to take this further now up for discussion in #948

@CharliePoole CharliePoole changed the title v4: Redesign API structure/Extension loading Redesign API structure/Extension loading Mar 7, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants