-
Notifications
You must be signed in to change notification settings - Fork 255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NuGet should report lifting from runtime-band to latest servicing for .NET packages #14085
Comments
Examples of packages that lift shared framework dependencies out of the LTS runtime:
|
Thanks @eerhardt. That's great context. I see those as examples of option 2 above. The next step is to start to write some guidance based on our practices. |
One thing I'd like the guidance to say is that for library authors to only depend on new version of packages that have new features that you need. For example, consider a library that targets This will lesson the impact of lifting assemblies out of the shared framework, because there will be less assemblies lifted. |
Yes. That's my plan. That's what I meant by option 2 above. It's a bit poorly worded. Where do you think we should put this guidance? |
My thinking was on https://learn.microsoft.com/dotnet/standard/library-guidance/ |
Team Triage: We'll need a design spec for this feature. |
We discussed this more. The realization was that this boils down to reporting the set of "prune packages" (from the platform) that were not pruned. The primary need is how we expose this information. It should not be |
We've been releasing libraries under two different models for many years. We recently documented our practices. The differences between the two models is user-observable and can (and will) affect key performance and compliance metrics that users (and we) care about. We need to provide users with diagnostic information so that they understand the impact of their actions (when they add/update a PackageRef). In many cases, it is difficult and impractical for the user to determine the impact on their own. It's logically similar in difficulty to getting a user to realize that there is a CVE in a package w/o the E2E audit experience we recently provided.
We also need to write new guidance. What should a library provider (for example, OpenTelemetry) do if they update/add a PackageRef and see this diagnostic? Let's assume they have a
net8.0
library and the new PackageRef lifts them to 9.0-era libraries.Options:
At present, we don't have any guidance on this. We don't need to wait for the diagnostic to write the guidance. It's not entirely obvious what the guidance (in terms of offering a preferred option) should be. However, we know that the last option should be generally avoided since it is likely to have unintended negative consequences on users. Each lifted reference will result in apps growing in size, CVE exposure, and (as a result) additional servicing responsibility for both the library and app owners.
The primary issue with being able to define good guidance is that we need to decide what our own behavior will be, since some of our own packages lift references. I'm assuming we'll choose option 2 above. We'll see.
Related:
The text was updated successfully, but these errors were encountered: