Description
We are planning on opting the libraries in this repository into the Google .NET Support Policy. One of the benefits of this policy is that it provides customers with predictability and confidence in what platforms will be supported over time, while providing the maintainers the opportunity to drop support for obsolete platforms without requiring a major version bump, which would be disruptive to both customers and maintainers.
In early January 2024, we plan to release a new minor version of all the libraries in this repository (both API-specific client libraries and support libraries), with the following targets:
- net462 (.NET Framework 4.6.2)
- netstandard2.0 (.NET Standard 2.0)
- net6.0 (.NET 6.0)
(The one exception to this set of targets is Google.Apis.Auth.AspNetCore3, as described below.)
Older versions of .NET Framework and .NET/.NET Core have been out of mainstream Microsoft support for at least a year.
Auth helper packages
The source code for Google.Apis.Auth.Mvc has been deleted from the repository, but the package has not been delisted. This was a very old package, predating the current maintainers. We don't believe it provides significant value. If customers request that we restore the source code and release new versions, we can certainly do so - but we'd like to discuss it further with such customers to see if we can provide a more useful package.
The project file for Google.Apis.Auth.AspNetCore (sharing most of the same source code as Google.Apis.Auth.AspNetCore3) has been deleted and the package has been delisted on nuget.org. This supported .NET Core 2.1, which has been out of support for a long time.
The Google.Apis.Auth.AspNetCore3 package and source code are still present and will continue to be released for the time being, continuing to target netcoreapp3.0. We expect to create a new package (Google.Apis.Auth.AspNetCore6) targeting net6.0, and potentially another targeting net8.0. We expect to retire Google.Apis.Auth.AspNetCore3 (deleting the source code and delisting the package) in July 2024.
PlatformServices assemblies
As part of the new release, we will remove Google.Apis.PlatformServices from the Google.Apis package, and Google.Apis.Auth.PlatformServices from the Google.Apis.Auth package. Since June 2017, these assemblies have only contained type-forwarding attributes. Strictly speaking, this is a breaking change - but it will only affect users who have an assembly which was built against a version of Google.Apis or Google.Apis.Auth older than 1.26.2, and which refers to types that were previously in a PlatformServices assembly.
We don't expect this to break any customers, due to the long period over which the types have been present in the "main" assemblies. If customers are broken by this, and are unable to rebuild the relevant assemblies against more modern versions, we can reinstate the type forwarding assemblies in another release. (We'd just prefer not to, in order to reduce technical debt and complexity.)
Feedback
We welcome your feedback on this plan. Ultimately we can't maintain packages targeting obsolete frameworks forever, but if there are particular reasons why the plan will cause difficulties for customers, we'd rather hear them ahead of time so we can collaborate on a way forward. Please leave comments below.
A pull request prototyping these changes is available - comments are welcome on that too.