-
Notifications
You must be signed in to change notification settings - Fork 696
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
Update System.CommandLine #6236
base: dev
Are you sure you want to change the base?
Conversation
The CI failure indicates some kind of chicken-and-egg problem: the repo uses an SDK version that uses the older version of S.CL and hence runs into issue at runtime. What is the recommended approach for such cases?
|
Those tests patch the NuGet SDK onto the existing SDK and run tests. Maybe we can try copying the System.Commandline.dll in the NuGet test and see what happens? |
rather than a hard breaking change, can you create a version of System.CommandLine that has both the old and new types, so there is no breaking change (for example, |
It would be tricky and dirty, but possible. @zivkan How about releasing a new version of |
I've taken a closer look at the proposal from @zivkan and got to the conclusion that I am not sure if this would have worked:
I've briefly studied both repos and found one more solution:
And the first one I had:
Of course all of the mentioned options are just workarounds. There might be more System.CommandLine breaking changes in the future (not many, but we need to have a solution ready). |
Context: we are working on releasing a new version of System.CommandLine. The only change we decided to revert was the adding of "Cli" prefix to all symbol types (because it would break every single user of the library).
To unblock the dependencies flow to dotnet/sdk (dotnet/sdk#46241 and dotnet/sdk#46224), we are going to need a new version of NuGet.CommandLine.XPlat that consumes the renamed APIs.
I was able to build it locally, the only thing I don't understand is why there were two different versions of System.CommandLine in the project:
NuGet.Client/Directory.Packages.props
Line 12 in 313eecd
NuGet.Client/eng/Version.Details.xml
Line 33 in 313eecd