Skip to content

[release/10.0.2xx] Source code updates from dotnet/roslyn#3244

Closed
dotnet-maestro[bot] wants to merge 25 commits intorelease/10.0.2xxfrom
darc-release/10.0.2xx-320cebc1-5f69-499b-a68e-fb46180df7a5
Closed

[release/10.0.2xx] Source code updates from dotnet/roslyn#3244
dotnet-maestro[bot] wants to merge 25 commits intorelease/10.0.2xxfrom
darc-release/10.0.2xx-320cebc1-5f69-499b-a68e-fb46180df7a5

Conversation

@dotnet-maestro
Copy link
Copy Markdown
Contributor

@dotnet-maestro dotnet-maestro Bot commented Nov 6, 2025

Note

This is a codeflow update. It may contain both source code changes from the source repo as well as dependency updates. Learn more here.

This pull request brings the following source code changes

From https://github.com/dotnet/roslyn

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

dotnet-maestro Bot commented Nov 6, 2025

Note

PRs from original repository included in this codeflow update:

💡 You may consult the FAQ for more information or tag @dotnet/product-construction for assistance.

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

dotnet-maestro Bot commented Nov 8, 2025

Note

PRs from original repository included in this codeflow update:

  • Add support for HandleAsyncEntryPoint API in async Main code generation (#80939) (https://github.com/dotnet/roslyn/pull/80939)
  • File-based programs live directive diagnostics (#80575) (https://github.com/dotnet/roslyn/pull/80575)
  • Record anonymous type dependencies during initial binding (#81024) (https://github.com/dotnet/roslyn/pull/81024)
  • Add order attribute to PeekableItemSourceProvider (#81095) (https://github.com/dotnet/roslyn/pull/81095)
  • Add feature status for closed class hierarchies (#81040) (https://github.com/dotnet/roslyn/pull/81040)
  • Use standard overload resolution for true/falseoperators while binding applications of dynamic&&/|| operators (#81055) (https://github.com/dotnet/roslyn/pull/81055)
  • [main] Update dependencies from dotnet/arcade (#81092) (https://github.com/dotnet/roslyn/pull/81092)
  • Fixes Stack Trace Explorer color contrast ratio (#81093) (https://github.com/dotnet/roslyn/pull/81093)
  • Expose a few constants to Razor (#81094) (https://github.com/dotnet/roslyn/pull/81094)
  • Add parser test demonstrating recovery from missing type arguments in generic names. (#81062) (https://github.com/dotnet/roslyn/pull/81062)
  • Convert Roslyn.sln to slnx (#80440) (https://github.com/dotnet/roslyn/pull/80440)
  • Clarify SymbolDisplayDelegateStyle documentation to mention SymbolDisplayParameterOptions (#80885) (https://github.com/dotnet/roslyn/pull/80885)
  • Fix documentation: clarify #error version requires compiler version, not language version (#80787) (https://github.com/dotnet/roslyn/pull/80787)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

dotnet-maestro Bot commented Nov 9, 2025

Note

PRs from original repository included in this codeflow update:

  • Don't emit DebuggerStepThroughAttribute for runtime async methods (#81035) (https://github.com/dotnet/roslyn/pull/81035)
  • Report an error for dynamic evaluation of &&/|| when left operand is statically typed as an interface (#80962) (https://github.com/dotnet/roslyn/pull/80962)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

Note

PRs from original repository included in this codeflow update:

  • #81118: Fix dropdown in "Move static members" dialog (#81119) (https://github.com/dotnet/roslyn/pull/81119)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@jjonescz
Copy link
Copy Markdown
Member

The error "Unable to find a stable package Microsoft.DotNet.FileBasedPrograms" should be fixed by a change made in dotnet/roslyn#81105

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

Note

PRs from original repository included in this codeflow update:

  • [main] Update dependencies from dotnet/arcade (#81129) (https://github.com/dotnet/roslyn/pull/81129)
  • [main] Update dependencies from dotnet/arcade (#81105) (https://github.com/dotnet/roslyn/pull/81105)
  • Target typed conditional expression recovery (#81025) (https://github.com/dotnet/roslyn/pull/81025)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

Note

PRs from original repository included in this codeflow update:

  • Remove obsolete IsBitness64 check from DeleteControl test (#81137) (https://github.com/dotnet/roslyn/pull/81137)
  • Unskip tests of MSBuildWorkspace with blazor and blazorwasm templates (#80468) (https://github.com/dotnet/roslyn/pull/80468)
  • Change default sln to slnx (#81136) (https://github.com/dotnet/roslyn/pull/81136)
  • Simplify sequence point display (#81104) (https://github.com/dotnet/roslyn/pull/81104)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@jjonescz
Copy link
Copy Markdown
Member

Looks like some build infra issue that SDK repo cannot access a package from the Roslyn repo:

src/sdk/src/BuiltInTools/dotnet-watch/dotnet-watch.csproj(0,0): error NU1102: (NETCORE_ENGINEERING_TELEMETRY=Restore) Unable to find package Microsoft.CodeAnalysis.Contracts with version (>= 5.3.0-ci)

@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

Note

PRs from original repository included in this codeflow update:

  • Remove parameters which are redundant with _localScopeDepth (#81045) (https://github.com/dotnet/roslyn/pull/81045)
  • Fix returning valid pp symbol info on unrelated preprocessor directives (#72910) (https://github.com/dotnet/roslyn/pull/72910)
  • Fix URL in Version.Details.xml (#81156) (https://github.com/dotnet/roslyn/pull/81156)
  • Use simpler context object for setting/resetting parser state. (#81042) (https://github.com/dotnet/roslyn/pull/81042)
  • Make RuntimeHostInfoTests more robust (#81080) (https://github.com/dotnet/roslyn/pull/81080)
  • Fix build task custom compiler logic (#80948) (https://github.com/dotnet/roslyn/pull/80948)
  • Fix cycle in partial event interface implementation (#80994) (https://github.com/dotnet/roslyn/pull/80994)
  • Add a couple 'generate equals' tests (#81143) (https://github.com/dotnet/roslyn/pull/81143)
  • Add a couple of misc runtime async tests (#81101) (https://github.com/dotnet/roslyn/pull/81101)

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

@akoeplinger
Copy link
Copy Markdown
Member

@jjonescz no, it looks like that package didn't get built when building roslyn for some reason:
image

@akoeplinger
Copy link
Copy Markdown
Member

It does get built in the Windows job so maybe a Linux/source-build issue

@jjonescz
Copy link
Copy Markdown
Member

Now the error is different ;)

eng/finish-source-only.proj(136,5): error : (NETCORE_ENGINEERING_TELEMETRY=Build) 3 new packages used not in baseline! See report at /__w/1/s/artifacts/log/Release/baseline-comparison.xml for more information. Package IDs are:
Microsoft.CodeAnalysis.Contracts.5.3.0-1.25556.104
Microsoft.DotNet.FileBasedPrograms.10.0.200-preview.0.25556.104
System.Security.Cryptography.Xml.8.0.1

<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.FileBasedPrograms" Version="10.0.200-preview.0.25556.104">
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This is not allowed. You can't take a dependency on a package from the SDK until that package version has been shipped. This is because of the repo build order. roslyn builds before sdk. So if you want something from sdk, it needs to have shipped first. Bootstrapping the VMR to be based on a newer SDK is not an option either. That's only allowed during 1xx previews.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

But the package has shipped from the VMR already, it's merged in the release/10.0.2xx branch. This PR came afterwards.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

By "shipped" I mean "included in a release". In other words, it would need to be included in the 10.0.200 release which hasn't happened yet.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I see, thanks. That's... unfortunate. cc @RikkiGibson

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yes, this is a source build requirement.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

In a true monorepo, I think this would be pretty straightforward to represent, by just putting the sources in a directory which is referenced by both roslyn and SDK, for example.

Agreed, and that's what I'm trying to emulate with referencing the sources from SDK directly when in VMR.

The fact that this is just a source package (i.e., we just need the source files, no binaries) feels to me like this sort of dependency should be allowed since we don't actually need building SDK before Roslyn.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

For local dev, it would be sufficient to just restore the sources package and then edit it, if it's just a sources package that you want to make manual edits to...no need to rebuild roslyn or do a dual repo layout. The circular reference is a problem, whether or not it's a source-only package. The VMR might allow you to kind of cheat this, but the layering problem still exists as soon as you step outside of the VMR.

What is the plan when this feature ships? Will the source be included in the SDK, such that roslyn just references the LKG from the last shipped SDK?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The VMR might allow you to kind of cheat this, but the layering problem still exists as soon as you step outside of the VMR.

I thought the product ships out of VMR these days, so that's all that matters?

What is the plan when this feature ships? Will the source be included in the SDK, such that roslyn just references the LKG from the last shipped SDK?

I'm not sure what you mean by this. Why would there need to be a specific/different plan for "when the feature ships"? I would imagine we would just do what we are trying to do now.

Anyway, if this is a problem, we can perhaps do a simple change here to have a copy of the sources in both roslyn and sdk, and have a super simple GitHub Action that will alert us if they are out of sync.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The copy approach that has been taken before when there is shared source. I think that would be better. I think between aspnetcore and runtime. The VMR shouldn't be used to ignore repo layering.

What you could do, is add the source package as a Toolset dependency (this avoids layering issues). At roslyn PR time, read the contents of the package and compare to the checked in versions.

Copy link
Copy Markdown
Member

@jjonescz jjonescz Nov 16, 2025

Choose a reason for hiding this comment

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

Thanks. Didn't find how exactly aspnetcore/runtime do this; but I did it via a PackageDownload and a test script: dotnet/roslyn#81284

@mthalman
Copy link
Copy Markdown
Member

Microsoft.CodeAnalysis.Contracts.5.3.0-1.25556.104

If you're not able to configure the repo to reference Microsoft.CodeAnalysis.Contracts via project references in source build configuration, this would need to be defined in SBRP. A version of that package already exists there but not this version.

@mthalman
Copy link
Copy Markdown
Member

System.Security.Cryptography.Xml.8.0.1

If you really need this version, it also needs to be defined in SBRP. Otherwise, just use the 8.0.0 version that's already available from there.

@jjonescz
Copy link
Copy Markdown
Member

Microsoft.CodeAnalysis.Contracts.5.3.0-1.25556.104

If you're not able to configure the repo to reference Microsoft.CodeAnalysis.Contracts via project references in source build configuration

I'm not sure what even changed here, there were no changes to that package in long time afaict. Oh, I guess it might be missing PrivateAssets="all" where it's newly referenced from sdk, let me try that.

System.Security.Cryptography.Xml.8.0.1

If you really need this version, it also needs to be defined in SBRP. Otherwise, just use the 8.0.0 version that's already available from there.

I can't imagine we would really need that patch version, let me try downgrading.

@dotnet-policy-service dotnet-policy-service Bot requested a review from a team November 12, 2025 18:57
@dotnet-maestro
Copy link
Copy Markdown
Contributor Author

Caution

There was a conflict in the PR branch when flowing source from https://github.com/dotnet/roslyn/tree/5b20f50823167975bfd1b6dd55fcbdba73ff3a6c
Files conflicting with the head branch:

Updates from this subscription will be blocked until the conflict is resolved, or the PR is merged

💡 You may consult the FAQ for more information or tag @dotnet/prodconsvcs for assistance.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants