Hello gRPC C# Users!

In May 2021 we announced <https://grpc.io/blog/grpc-csharp-future/> that
Grpc.Core (the original C# implementation of gRPC) became "maintenance
only" and that grpc-dotnet will be the recommended implementation going
forward. We also announced that Grpc.Core will become deprecated in the
future.

While all the above is still the plan, we are making some adjustments based
on the user feedback we received. We also wanted to publish more details
about the plan and its technical execution. All the important updates are
summarized in the following sections of this announcement.
Grpc.Core maintenance period will be extended by 1 more year (until May
2023)

Originally we planned to deprecate the Grpc.Core implementation in May
2022, but the feedback we received from users has indicated that extending
the maintenance period would make sense. Without going too much into the
details, the main points of the feedback can be summarized as:

   -

   The main blocker for deprecating Grpc.Core is the lack of support of the
   legacy .NET Framework in grpc-dotnet. The desire to migrate off the legacy
   .NET framework is often there, but migrating workloads from .NET Framework
   to .NET Core / .NET 6 simply takes time and effort.
   -

   Grpc.Core is a very important technology for enabling migration off .NET
   Framework (since it enables piece-by-piece migration by interconnecting
   components on newer .NET platforms with components that remain on .NET
   Framework), so supporting it for a little longer can (somewhat
   paradoxically) help users migrate off it faster.


As a result, we are delaying the deprecation of Grpc.Core until May 2023 (1
year from now, and 2 years after the original announcement). Until then,
Grpc.Core will remain to be supported in the "maintenance mode", as
described below.

Since the plan to deprecate Grpc.Core has been now publicly known for a
while and since the main reason we are extending the maintenance period is
to deal with the issues related to the legacy .NET Framework (and migration
off it), we also want to clarify what exactly will be covered by the
"Grpc.Core maintenance" going forward:

   -

   The main goal of keeping Grpc.Core alive is to maintain the ability to
   run gRPC C# clients and servers on the legacy .NET Framework on Windows.
   This will be taken into account when considering issues / fixes.
   -

   We will only provide critical and security fixes going forward. This is
   to minimize the maintenance costs and reflects the fact that grpc-dotnet is
   the recommended implementation to use.
   -

   There will be no new features for Grpc.Core. Note that since Grpc.Core
   is moving to a maintenance branch (see section below), there will also be
   no new features coming from the native C-core layer.
   -

   There will be no new platform support and portability work. The focus
   will be on continuing support for the legacy .NET Framework on Windows
   (where there is no alternative implementation to use) and the list of
   supported platforms will not be expanded (e.g. we will not work towards
   better support for Unity, Xamarin, Alpine Linux etc.). We will likely drop
   support for platforms that have been so far considered as "experimental"
   (e.g. Unity and Xamarin), since they are also hard to test and maintain.
   -

   Work to support new .NET versions (.NET6, NET 7, …) will be kept to a
   minimum (or not done at all) since those .NET versions fully support
   grpc-dotnet.
   -

   No more performance work: Since the main purpose of Grpc.Core is to
   maintain interoperability with legacy .NET framework, there will be less
   focus on performance. We do not expect any significant performance drops,
   but performance may degrade over time if tradeoffs between performance vs
   maintainability are needed.


Grpc.Core moves to a maintenance branch in the grpc/grpc repository (while
other actively developed packages move to grpc/grpc-dotnet repository)

To simplify the maintenance of Grpc.Core, we decided to move the the
Grpc.Core implementation to a maintenance branch (v1.46.x
<https://github.com/grpc/grpc/tree/v1.46.x> on the grpc/grpc repository),
where it will continue to receive security and critical fixes, but will not
be slowing down the development of the native C-core library it is based on
(it will be based on a maintenance version of C-core in the same branch).

Since originally the grpc/grpc <https://github.com/grpc/grpc> repository
was a home to more NuGet packages than just Grpc.Core, we are actually
doing a split: Grpc.Core and the related packages (e.g. Grpc, Grpc.Core,
Grpc.Core.Testing, Grpc.Core.NativeDebug, ...) will be moved to the
maintenance branch, while other packages (Grpc.Core.Api, Grpc.Auth,
Grpc.HealthCheck, Grpc.Reflection and eventually also Grpc.Tools) will be
moved to the grpc/grpc-dotnet <https://github.com/grpc/grpc-dotnet>
repository where there will continue to be developed. This technical
solution will ensure that Grpc.Core stays stable and maintainable and the
other packages that are also used by grpc-dotnet will have a new home going
forward and can continue to evolve (and they will already be in the right
place once Grpc.Core actually goes out of support in the future).

More details about the solution we chose can be found in the csharp's README
<https://github.com/grpc/grpc/blob/master/src/csharp/README.md>.

Feel free to reply to this announcement with follow up questions and
requests for clarification. For major issues connected to the
migration/deprecation plan, you can file an issue on github as usual.

On behalf of the gRPC team,

Jan
-- 

Jan Tattermusch

Software Engineer


Google Germany GmbH

Erika-Mann-Straße 33

80636 München

Geschäftsführer: Paul Manicle, Liana Sebastian

Registergericht und -nummer: Hamburg, HRB 86891

Sitz der Gesellschaft: Hamburg

Diese E-Mail ist vertraulich. Falls sie diese fälschlicherweise erhalten
haben sollten, leiten Sie diese bitte nicht an jemand anderes weiter,
löschen Sie alle Kopien und Anhänge davon und lassen Sie mich bitte wissen,
dass die E-Mail an die falsche Person gesendet wurde.



This e-mail is confidential. If you received this communication by mistake,
please don't forward it to anyone else, please erase all copies and
attachments, and please let me know that it has gone to the wrong person.

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CACF4M0QhjeTu%3DeqqLDc5HG1ZNPHEemXdzigY%2BA4VkUjNWgP5cQ%40mail.gmail.com.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to