jbogard / Respawn

Intelligent database cleaner for integration tests
Apache License 2.0
2.67k stars 134 forks source link

Set TargetFrameworks solely to "netstandard2.0" #139

Open marco-carvalho opened 4 months ago

marco-carvalho commented 4 months ago

Hi @jbogard.

First of all, thank you for creating this lib.

Second, I would like to propose setting the TargetFrameworks solely to netstandard2.0. This change aims to increase the compatibility of the library with a broader range of projects, especially those that are not yet able to upgrade to newer .NET versions.

Changes included:

Benefits:

Please let me know if there are any additional concerns or if further modifications are needed.

Looking forward to your feedback.

jbogard commented 4 months ago

The way I want to handle this is to direct users to the last version on netstandard2.0, NOT to downgrade features in the current version. That version would be release 4.0.

marco-carvalho commented 4 months ago

Hi @jbogard,

Thank you for your prompt response.

I understand your preference for directing users to the last version that supports netstandard2.0, which is release 4.0. However, I would like to clarify that my proposed changes do not involve downgrading features or altering method signatures. The goal is solely to adjust the target framework for broader compatibility, particularly for projects that haven't yet upgraded to newer .NET versions.

The current version, 6.2.1 (released on January 19, 2024), includes numerous changes since version 4.0. By making the library compatible with netstandard2.0, users can benefit from these improvements without needing to upgrade their project's framework.

I believe this approach could provide significant value to developers working in diverse environments while maintaining the integrity of the library's features. Please let me know if there's any aspect of this proposal you'd like to discuss further or if you have any additional concerns.

Looking forward to your feedback.

jbogard commented 4 months ago

This PR removes a bunch of async/await though. Yes the public API is unaffected but the internal implementation changed. I'm just not interested in supporting .NET Framework indefinitely (or lower frameworks). I'm only targeting really current .NET Core versions with the latest releases.

marco-carvalho commented 4 months ago

What if it could be something like this?

#if NETSTANDARD2_0
            using var cmd = connection.CreateCommand();
#else
            await using var cmd = connection.CreateCommand();
#endif
jbogard commented 4 months ago

That can work I think, let's see how bad it is.

marco-carvalho commented 4 months ago

@jbogard done!