dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.07k stars 4.69k forks source link

APICompat doesn't capture all changes that might happen during servicing #84142

Open ericstj opened 1 year ago

ericstj commented 1 year ago

Description

https://github.com/dotnet/runtime/issues/84031 represents a regression in servicing that we could have caught with API Compat.

We should consider the following new APICompat comparisons:

  1. Servicing branch to future framework / packages.
  2. Current branch to previous serviced packages (don't limit the baseline to GA). This will catch things after they ship, but will catch them before our customers do.
  3. Consider enabling strict mode in servicing for all packages. Determine an assembly version rule that might be acceptable in this case but not too noisy.

Reproduction Steps

Make a breaking change in servicing that makes a serviced package incompatible with a newer version of that package.

Expected behavior

APICompat catches this and raises an error.

Actual behavior

No error was raised.

Regression?

No response

Known Workarounds

No response

Configuration

No response

Other information

No response

ghost commented 1 year ago

Tagging subscribers to this area: @dotnet/area-infrastructure-libraries See info in area-owners.md if you want to be subscribed.

Issue Details
### Description https://github.com/dotnet/runtime/issues/84031 represents a regression in servicing that we could have caught with API Compat. We should consider the following new APICompat comparisons: 1. Servicing branch to future framework / packages. 2. Current branch to previous serviced packages (don't limit the baseline to GA). This will catch things after they ship, but will catch them before our customers do. 3. *Consider* enabling strict mode in servicing for all packages. Determine an assembly version rule that might be acceptable in this case but not too noisy. ### Reproduction Steps Make a breaking change in servicing that makes a serviced package incompatible with a newer version of that package. ### Expected behavior APICompat catches this and raises an error. ### Actual behavior No error was raised. ### Regression? _No response_ ### Known Workarounds _No response_ ### Configuration _No response_ ### Other information _No response_
Author: ericstj
Assignees: ViktorHofer
Labels: `area-Infrastructure-libraries`
Milestone: -