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

[17.13] Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence #11487

Closed
wants to merge 3 commits into from

Conversation

surayya-MS
Copy link
Member

@surayya-MS surayya-MS commented Feb 24, 2025

Require opt-in (instead of -out) to .sln parsing with the new parser from Microsoft.VisualStudio.SolutionPersistence.

Fixes #11463

Work item (Internal use): AB#2397817

Summary

Added MSBUILD_SLN_PARSING_SOLUTIONPERSISTENCE_OPTIN as an opt-in environment variable instead of requiring changewave opt-out to return to the MSBuild-internal solution parser.

Customer Impact

Three categories of problem:

All manifest as build or NuGet restore breaks with no obvious workaround (but once discovered the changewave opt-out environment variable works).

Regression?

Yes, in 17.13/9.0.200 due to adopting the common SolutionPersistence library instead of our homegrown sln parser.

Testing

Changed tests to set MSBUILD_SLN_PARSING_SOLUTIONPERSISTENCE_OPTIN environment variable. Tested manually as well.

Risk

Low, returns to 17.12 behavior unless explicitly opted in--basically inverting existing opt-out.

@surayya-MS surayya-MS requested a review from a team as a code owner February 24, 2025 18:33
@surayya-MS surayya-MS changed the title Opt-in .sln parsing with SolutionPersistence Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence Feb 24, 2025
@surayya-MS
Copy link
Member Author

/azp run

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@@ -134,6 +134,8 @@ public Traits()

public readonly bool InProcNodeDisabled = Environment.GetEnvironmentVariable("MSBUILDNOINPROCNODE") == "1";

public readonly bool SlnParsingWithSolutionPersistenceOptIn = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("MSBUILD_SLN_PARSING_SOLUTIONPERSISTENCE_OPTIN"));
Copy link
Member

Choose a reason for hiding this comment

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

I like the naming style with "_" more than current, it is more readable. However, this is breaking current naming standards for environment variables, from what I see in this file. Let's discuss whether we want to allow two styles from now on. @rainersigwald your opinion?

Copy link
Member

Choose a reason for hiding this comment

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

Actually, I see two styles already in the file, so this would be 3rd.

Copy link
Member Author

Choose a reason for hiding this comment

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

thanks for the commen! i will address this in follow-up PR

Copy link
Member Author

Choose a reason for hiding this comment

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

@surayya-MS
Copy link
Member Author

For 17.13 we are reverting .slnx support - use the new parser for .sln and .slnx in #11488

We want the changes in this PR for 17.14

@surayya-MS surayya-MS closed this Feb 25, 2025
@surayya-MS surayya-MS changed the title Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence [17.13] Opt-in .sln parsing with Microsoft.VisualStudio.SolutionPersistence Mar 4, 2025
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.

3 participants