WireMock-Net / WireMock.Net

WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on the functionality from http://WireMock.org, but extended with more functionality.
Apache License 2.0
1.35k stars 197 forks source link

Split WireMock into multiple nuget packages depending on features #1071

Open asidorowicz opened 4 months ago

asidorowicz commented 4 months ago

Is your feature request related to a problem? Please describe. WireMock is currently a single monolithic dependency that pulls with it a very large amount of transitive dependencies, regardless of whether the features are used or not. This can be seen as a minor inconvenience, but enough for our team to have decided to use a different testing tool.

Describe the solution you'd like Split WireMock into separate dependencies depending on desired features, especially if the features require large transitive dependencies (eg: Graphql)

Describe alternatives you've considered We have tried to exclude non-used transitive dependencies, but it is a clunky solution.

StefH commented 4 months ago

@asidorowicz Good point. I'll think on this...

StefH commented 4 months ago

Work in progress... : https://github.com/WireMock-Net/WireMock.Net/pull/1072

StefH commented 4 months ago

@asidorowicz If you have time, you can test preview version 1.5.48-ci-18384 which has separate NuGet for GraphQL, ProtoBuf and MimeKitLite.

https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions

asidorowicz commented 4 months ago

@StefH Thank you for your work! I didn't expect such a quick response :) It is much better, though there are still many dependencies that I don't know whether they are part of the core functionality or could be add-ons. Either way, I believe it is an awesome step into a modular approach!

StefH commented 4 months ago

@asidorowicz I'll check if more packages can be extracted, however after some thinking, I want to take a slightly different approach.