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

[Breaking change]: dotnet sln add #43882

Open
1 of 3 tasks
edvilme opened this issue Dec 6, 2024 · 1 comment · May be fixed by #43931
Open
1 of 3 tasks

[Breaking change]: dotnet sln add #43882

edvilme opened this issue Dec 6, 2024 · 1 comment · May be fixed by #43931
Assignees
Labels
breaking-change Indicates a .NET Core breaking change doc-idea Indicates issues that are suggestions for new topics [org][type][category] in-pr This issue will be closed (fixed) by an active pull request. Pri1 High priority, do before Pri2 and Pri3 📌 seQUESTered Identifies that an issue has been imported into Quest.

Comments

@edvilme
Copy link
Member

edvilme commented Dec 6, 2024

Description

dotnet/sdk#44570
Starting in 9.0.2xx, the cli command dotnet sln add will add support for .slnx solution files using the new vs-solutionpersistence serializer.
As a result, slight changes in behavior are expected.

Version

Other (please put exact version in description textbox)

Previous behavior

  • Projects and Solution Folders could have invalid Windows filenames, or invalid characters in their names
  • Command would fail when attempting to add a nested project with the same name as an existing project

New behavior

  • Projects and Solution Folders names cannot be a DOS word: NUL, CON, AUX, PRN, COM?, LPT?. CLOCK$ (where ? is any number of digits)
  • Projects and Solution Folder names cannot be more than 260 characters
  • Projects and Solution Folder names cannot contain invalid characters such as control characters or ? : \ / * " " < > |
  • Command will no longer fail when attempting to add a nested project with the same name as an existing project, mimicking behavior for non-nested projects.
    Example, adding foo/bar.csproj and parent/child/bar.csproj will not result in an error
  • Exceptions will contain the current strings, but will wrap vs-solutionpersistence's error messages

Type of breaking change

  • Binary incompatible: Existing binaries might encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
  • Source incompatible: When recompiled using the new SDK or component or to target the new runtime, existing source code might require source changes to compile successfully.
  • Behavioral change: Existing binaries might behave differently at run time.

Reason for change

This changes are introduced for transitioning to the new vs-solutionpersistence serializer

Recommended action

Review project and solution folders names

Feature area

SDK

Affected APIs

AddProjectToSolutionCommand.Execute


Associated WorkItem - 351645

@edvilme edvilme added breaking-change Indicates a .NET Core breaking change doc-idea Indicates issues that are suggestions for new topics [org][type][category] Pri1 High priority, do before Pri2 and Pri3 labels Dec 6, 2024
@dotnetrepoman dotnetrepoman bot added ⌚ Not Triaged Not triaged labels Dec 6, 2024
@gewarren gewarren removed the ⌚ Not Triaged Not triaged label Dec 6, 2024
@dotnetrepoman dotnetrepoman bot added the ⌚ Not Triaged Not triaged label Dec 6, 2024
@gewarren gewarren added the 🗺️ reQUEST Triggers an issue to be imported into Quest. label Dec 6, 2024
@dotnetrepoman dotnetrepoman bot removed the ⌚ Not Triaged Not triaged label Dec 6, 2024
@dotnetrepoman dotnetrepoman bot added 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. and removed 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. labels Dec 6, 2024
@kasperk81
Copy link

i think it will help clarify more if these questions are answered in the docs:

Projects and Solution Folders could have invalid Windows filenames, or invalid characters in their names

what are some examples of invalid names?

are those some unicode character (ranges) which are considered invalid? if so, what are those ranges; "any" unicode character?

Command will no longer fail when attempting to add a nested project with the same name as an existing project, mimicking behavior for non-nested projects

briefly describe the behavior with an example.

@sequestor sequestor bot added 📌 seQUESTered Identifies that an issue has been imported into Quest. and removed 🗺️ reQUEST Triggers an issue to be imported into Quest. labels Dec 6, 2024
@dotnetrepoman dotnetrepoman bot added ⌚ Not Triaged Not triaged 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. and removed ⌚ Not Triaged Not triaged 🗺️ mapQUEST Only used as a way to mark an issue as updated for quest. RepoMan should instantly remove it. labels Dec 6, 2024
@gewarren gewarren linked a pull request Dec 10, 2024 that will close this issue
@dotnet-policy-service dotnet-policy-service bot added the in-pr This issue will be closed (fixed) by an active pull request. label Dec 10, 2024
@gewarren gewarren moved this from 🔖 Ready to 👀 In review in dotnet/docs December 2024 Sprint Dec 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change Indicates a .NET Core breaking change doc-idea Indicates issues that are suggestions for new topics [org][type][category] in-pr This issue will be closed (fixed) by an active pull request. Pri1 High priority, do before Pri2 and Pri3 📌 seQUESTered Identifies that an issue has been imported into Quest.
Projects
Status: 👀 In review
Development

Successfully merging a pull request may close this issue.

3 participants