ch-robinson / dotnet-avro

An Avro implementation for .NET
https://engineering.chrobinson.com/dotnet-avro/
MIT License
135 stars 51 forks source link

multitargeting .netstandard2.0 and .net6 #269

Closed fabianoliver closed 1 year ago

fabianoliver commented 1 year ago

PR following up our chat here

A few things worth noting:

  1. I've added multi-targeting to a few projects that seemed like it may be useful in the future - but worth a thought if you'd rather have a smaller subset of projects to begin with? (For the proposed binary reader changes, just Chr.Avro.Binary would be enough, but you mentioned there are a few other ideas in the pipeline as well)

  2. It might be nice to run tests under the lowest possible .NET version supporting .NetStandard 2.0, but there are a few hurdles:

    • Net Framework 4.6.1 has several incompatibilities
    • Net Framework 4.6.2 has less limitations (would still need a few changes), but mainly would need a windows-based build
    • Net Core < 3.1 isn't compatible with the current Microsoft.NET.Test.SDK version, so would need a downgrade for that
    • Hence, .NetCore 3.1 seemed like the most feasible lowest common denominator without more intrusive changes
  3. Chr.Avro.Json.Tests has a few test failures when run under .NetCore 3.1 (unrelated to any changes here), so I've left this one out for the time being & will lodge a separate issue for that