Skip to content
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

Use 8.0 era dependencies for non net9.0 TFMs #5470

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

joperezr
Copy link
Member

@joperezr joperezr commented Oct 3, 2024

Fixes #5462

cc: @eerhardt

This change makes it such that packages produced from this repository will depend on 8.0 era packages when consuming them from a project that targets net8.0 (and net462), and on 9.0 era packages when consuming them from a project that targets net9.0.

This is in favor of allowing customers that can only consume LTS versions of the rest of .NET to not be lifted when referencing packages from dotnet/extensions.

FYI: @ericstj @stephentoub @sebastienros @DamianEdwards @RussKie

Microsoft Reviewers: Open in CodeFlow

eng/packages/General.props Outdated Show resolved Hide resolved

<PropertyGroup Label="Manual">
<!-- Packages from dotnet/runtime -->
<MicrosoftBclTimeProviderLTSVersion>8.0.1</MicrosoftBclTimeProviderLTSVersion>
Copy link
Member

@eerhardt eerhardt Oct 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we have the any of the servicing concerns as discussed in dotnet/efcore#34769 (comment)? When we service this repo, we will need to wait for the 8.0.x release to be done before we can build this repo. Will that be a problem?

cc @ericstj

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really because dotnet/extensions is not part of product construction. The reason why efcore is a concern, is that efcore 9 (which is part of product construction) would now depend on the build of .NET 8 servicing, meaning that a rebuild of 8 servicing would trigger at the very least a partial rebuild for .NET 9. In our case, while .NET 8 servicing rebuild would trigger a rebuild for us as well, it would only affect our layer as nothing depends on the live versions that we produce higher in the stack, and .NEt 9 wouldn't require a rebuild as extensions is not part of it.

Copy link
Member

@RussKie RussKie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a feeling we should go back to the original R9 organisation - i.e., have eng/packages/General.props contain only the general packages, and then have eng/packages/net80.props and eng/packages/net90.props that would contain TFM-specific packages.

@joperezr
Copy link
Member Author

joperezr commented Oct 4, 2024

I have a feeling we should go back to the original R9 organisation - i.e., have eng/packages/General.props contain only the general packages, and then have eng/packages/net80.props and eng/packages/net90.props that would contain TFM-specific packages.

Fair enough, I'm not sure how that will work for projects that are not multi-targeting as TFM is not always set at the right time, but I can try doing this and see how it behaves.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Using v9.0 packages on .NET 8 shouldn't lift Microsoft.Extensions libraries out of the shared framework
3 participants