Skip to content

Get rid of net9.0 TFM#81946

Merged
jjonescz merged 5 commits intodotnet:mainfrom
jjonescz:net9
Jan 14, 2026
Merged

Get rid of net9.0 TFM#81946
jjonescz merged 5 commits intodotnet:mainfrom
jjonescz:net9

Conversation

@jjonescz
Copy link
Member

@jjonescz jjonescz commented Jan 9, 2026

@jjonescz jjonescz marked this pull request as ready for review January 9, 2026 17:06
@jjonescz jjonescz requested review from a team as code owners January 9, 2026 17:06
Copy link
Member

@jcouv jcouv left a comment

Choose a reason for hiding this comment

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

LGTM Thanks (commit 1)

Copy link
Contributor

@AlekseyTs AlekseyTs left a comment

Choose a reason for hiding this comment

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

LGTM (commit 1)


<!--
This props file manages the target framework properties for Roslyn. The strategy for these properties
is covered in "docs/contributing/target-framework-strategy.md". Please see that for documentation
Copy link
Member

Choose a reason for hiding this comment

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

Did you check this file to see if needed updates based on the TFM change?

Copy link
Member Author

@jjonescz jjonescz Jan 12, 2026

Choose a reason for hiding this comment

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

I think I don't understand that doc. What is "current servicing target framework" and why does .NET SDK require that? For source build, it says $(NetCurrent) and $(NetPrevious) are required, but I'm not sure how to determine those - looking at vmr binlogs, it seems those might be net10 and net9 - so does that mean we need to keep net9? Or perhaps it would be enough to add net9.0 to <NetRoslynSourceBuild>?

Copy link
Member Author

@jjonescz jjonescz Jan 12, 2026

Choose a reason for hiding this comment

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

vmr/source build seems to be fine with the net9 removal: dotnet/dotnet#4152

Copy link
Member

Choose a reason for hiding this comment

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

That doc is an attempt to explain

  1. What TFMs our product needs to build for.
  2. What products are forcing us to build that set of TFMs.
  3. Attempt to explain a bit how the actual build logic connects to these items

As part of this change I would expect this line to be updated

.NET SDK: requires us to ship compilers on current servicing target framework (presently net9.0)

Essentially the .NET SDK drives one of our TFM requirements. Now the requirement is net10.0 (and soon net11.0). Hence it's okay for you to delete net9.0 from our code base. But should update this doc to keep it fresh.

When I didn't have this doc, I got lots of requests to add it. Hence want to keep it up to date

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, the doc is great, I was just a bit confused how to determine the requirements (and hence how to update them when changing the TFMs), but I think I understand it now, will update it, thanks.

Copy link
Member

@jcouv jcouv Jan 12, 2026

Choose a reason for hiding this comment

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

Looking at the doc more, there's instructions for updating TFMs: https://github.com/dotnet/roslyn/blob/main/docs/contributing/target-framework-strategy.md#checklist-for-updating-tfms-once-a-year

Did we follow all the steps for this PR? In particular, I there's still NET9_0_OR_GREATER left in the code that needs to be updated.

Copy link
Member Author

@jjonescz jjonescz Jan 13, 2026

Choose a reason for hiding this comment

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

Did we follow all the steps for this PR?

It looks like most of those steps should have been followed when adding a new TFM (which I'm not doing in this PR, I'm merely removing an old one), but I will take a look, thanks.

Copy link
Member Author

@jjonescz jjonescz Jan 13, 2026

Choose a reason for hiding this comment

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

MSBuildWorkspace: requires to ship a process that must be usable on the lowest supported SDK (presently net6.0)

I'm not sure if this is correct; @jasonmalinowski?

Copy link
Member

Choose a reason for hiding this comment

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

Ah yes, we bumped it to net8.0.

@jjonescz
Copy link
Member Author

/pr-val

@github-actions
Copy link
Contributor

github-actions bot commented Jan 13, 2026

View PR Validation Run triggered by @jjonescz

Parameters
  • Validation Type: pr-val
  • Pipeline ID: 8972
  • Pipeline Version: main
  • PR Number: 81946
  • Commit SHA: 7d600974576df67186023955ce65bef87e08881b
  • Source Branch: net9
  • Target Branch: main
  • Build ID: 13087201

PR: https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/699893

@jjonescz jjonescz enabled auto-merge (squash) January 14, 2026 08:52
@jjonescz jjonescz merged commit e6f840b into dotnet:main Jan 14, 2026
28 of 29 checks passed
@jjonescz jjonescz deleted the net9 branch January 14, 2026 11:25
@dotnet-policy-service dotnet-policy-service bot added this to the Next milestone Jan 14, 2026
@davidwengier davidwengier modified the milestones: Next, 18.4 Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants