mmanela / diffplex

DiffPlex is Netstandard 1.0+ C# library to generate textual diffs.
Apache License 2.0
975 stars 181 forks source link

Consider dropping some legacy framworks #128

Open SimonCropp opened 1 week ago

SimonCropp commented 1 week ago

so we can leverage newer .net features

SimonCropp commented 1 week ago

IMO net6, netstandard2, net472

mmanela commented 1 week ago

@SimonCropp Thanks for filing this. I am not against dropping older support if we have a compelling change to make (like adopting span to improve perf). However, one of the goals I have for this project is being maximally compatible so that any improvement can help the greatest number of projects even if they are stuck on very old framework versions. So, I want to weigh improvements against that view and make sure the improvement is worth the loss of compatibility.

Thoughts?

SimonCropp commented 1 week ago

my reasoning

Up for debate is if u still want to support 4.6.2. released in 2016-8 and supported till 2027-1. u can see the APIs added in net47 https://github.com/microsoft/dotnet/blob/main/releases/net47/dotnet47-api-changes.md i think the only problematic thing in tuple support. there is a polyfill package System.ValueTuple, but it not seamless. AFAIK it was the first attempt from MS to back port a language feature to an earlier runtime. if u google 4.6.2 tuple u can see some of the problems.

As for api+langfeature compat, we can use a polyfill lib.

Refs:

mmanela commented 6 days ago

@SimonCropp Thanks for the detailed response and I am supportive of this. Ideally, we would do this change along with improvements that take advantage of the newer framework versions.

SimonCropp commented 6 days ago

@mmanela ok. i will gradually make changes and trim TFM as required. and we can discuss in each PR