I would like to propose that we update the main Avro C# project to target
.NET Standard only. I will lay out a couple reasons below, but first let's
start with a little context.

You can see the different frameworks that the C# project currently targets
here in the README
<https://github.com/apache/avro/tree/master/lang/csharp#target-frameworks>.
We updated the main Avro library to target .NET Standard with the release
of v1.9.0. However, we continue to target the .NET Framework v4.0 as well.
This allows users that are targeting .NET Framework versions between 4.0
and 4.6.1 to still use the library. As you can see in this table on .NET
Standard
<https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support>compatibility,
as long as you are targeting .NET Framework 4.6.1 or later OR .NET Core 2.0
or later, you can use a library that targets .NET Standard.

To be clear, we are not dropping support for all of .NET Framework. We
would drop support for for any version of .NET Framework before v4.6.1.

This change will simplify our release process. At this time, we can only
build a NuGet package that contains both .NET Framework and .NET Standard
binaries on Windows. This means that after the "official" release is
created and deployed, I have to rebuild the project on my Windows machine
before publishing the package to nuget.org. With this change, we would only
create .NET Standard binaries, which means that we could build the NuGet
package on a Linux machine. Then, we could publish the NuGet directly from
the "official" build to nuget.org. No more side channel builds.

This change will also simplify development, particularly when developing on
non-Windows platforms. I think it's still a good idea to run our unit tests
on .NET Framework in addition to Core, but we could make it so that those
are only run when run on Windows.

This is a breaking change for the C# library, so we would need to save this
for the 1.10 release.

Does anyone have any objections, questions or concerns?

Thanks,

-- 

[image: 51b630b05e01a6d5134ccfd520f547c4.png]

Brian Lachniet

Software Engineer

E: [email protected] | blachniet.com <http://www.blachniet.com>

<https://twitter.com/blachniet> <http://www.linkedin.com/in/blachniet>

Reply via email to