dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.22k stars 9.95k forks source link

Compat testing of popular libraries for 3.0 #11108

Closed DamianEdwards closed 5 years ago

DamianEdwards commented 5 years ago

As part of 3.0, there have been a number of changes that may impact existing libraries that customers are using today. There of course also could be unintentional changes that end up breaking some of these libraries. It would be good to know about these sooner rather than later in order to help address the issues (e.g. fix the unintended break, send a PR to the library to make it work in 3.0, log an issue with the library with details, etc.).

To that end, we've compiled a list of popular libraries used by ASP.NET Core projects in (somewhat) descending popularity order. The list was constructed using a number of data sources including NuGet package download counts, VS telemetry, Twitter interactions, and team assumptions/knowledge. Any library that was determined to have usage by less than approx. 1% of the ASP.NET Core user base was excluded. Note that the library names used here are actually the assembly names which in some cases do not match the NuGet package name.

Work description

For each library in this list, the idea is to complete a basic "Hello World" scenario applicable for that library using the latest available version, and record one of the following outcomes:

  1. No issue found, library works in an ASP.NET Core 3.0 project
  2. Library needs to react to 3.0 change, issue logged on library project
  3. Library needs to react to 3.0 change, PR sent to library project
  4. Unintended ASP.NET Core change causes library issues, issue logged/PR sent to ASP.NET Core to fix the issue and restore compatibility with library

Library list

  1. [ ] Swashbuckle.AspNetCore
  2. [ ] AutoMapper
  3. [ ] Serilog
  4. [ ] Dapper
  5. [ ] MessagePack
  6. [ ] IdentityModel
  7. [ ] NLog
  8. [ ] Autofac
  9. [ ] IdentityServer4
  10. [ ] log4net
  11. [ ] Polly
  12. [ ] FluentValidation.AspNetCore
  13. [ ] Npgsql
  14. [ ] StackExchange.Redis
  15. [ ] Microsoft.AspNetCore.Mvc.Versioning
  16. [ ] RabbitMQ.Client
  17. [ ] MongoDB.Driver
  18. [ ] RestSharp
  19. [ ] MySQL.Data
  20. [ ] AWSSDK.Core
  21. [ ] Hangfire.Core
  22. [ ] MySQLConnector
  23. [ ] MediatR
  24. [ ] Npgsql.EntityFrameworkCore.PostgreSQL
  25. [ ] Pomelo.EntityFrameworkCore.MySQL
  26. [ ] Elasticsearch.Net
  27. [ ] CsvHelper
  28. [ ] Microsoft.Azure.ServiceBus
  29. [ ] Oracle.ManagedDataAccess
  30. [ ] NSwag.AspNetCore
  31. [ ] protobuf-net
  32. [ ] Microsoft.OData.Core
  33. [ ] nodatime
  34. [ ] MiniProfiler.AspNetCore
  35. [ ] Ocelot
  36. [ ] MySQL.Data.EntityFrameworkCore
  37. [ ] Microsoft.AspNetCore.OData
  38. [ ] Consul
  39. [ ] ServiceStack.Text
  40. [ ] Microsoft.Azure.Storage.Common
  41. [ ] Microsoft.Azure.EventHubs
  42. [ ] NWebsec.AspNetCore.Middleware
  43. [ ] Confluent.Kakfa
  44. [ ] SimpleInjector
  45. [ ] MassTransit
analogrelay commented 5 years ago

Putting in area-infrastructure I guess? One problem we have in our "dispatching" logic is we don't have a great "cross-cutting" bucket to get it off the dispatch queue.

rynowak commented 5 years ago

I hereby certify this as good.

Pilchie commented 5 years ago

@davidfowl I know you did a bunch of work here - should this issue be closed now?

davidfowl commented 5 years ago

Yes, actually @glennc modified the spread sheet and we ended up chasing down a bunch of deps.