System.CommandLine v2.0.0-beta5.25306.1
Pre-release
Pre-release
Announcing System.CommandLine 2.0.0-beta5 and our path to a stable release (#2576)
What's Changed
- remove outdated docs by @jonsequitur in #1766
- Fix #1759 by @jonsequitur in #1767
- Add support for timeout in process termination handling by @JanKrivanek in #1756
- fix #1768 by @jonsequitur in #1773
- fix #1779 by @jonsequitur in #1780
- System.CommandLine is split into too many namespaces by @BenjaminMichaelis in #1788
- Clean up files a bit by @BenjaminMichaelis in #1790
- fix generate name value for MethodInfo without Parameters by @hessenar in #1789
- update build machine image names by @brettfo in #1804
- Adding in cancellation support for InvokeAsync by @Keboo in #1502
- [1653] remove the legacy double dash behavior and ParseResult.UnparsedTokens by @Tunduk in #1806
- Update projects to net7.0 TargetFramework with shared property by @lbussell in #1803
- Update public pool names by @alexperovich in #1831
- update build urls by @brettfo in #1833
- Updated indention from an earlier PR cleanup. by @shaggygi in #1793
- Adding proposed fix for FromAmong by @Keboo in #1843
- Fixed null reference exception in
Token
operator overload by @vlada-shubina in #1842 - Localizing required option not provided message by @Keboo in #1856
- restore Arcade off switch by @jonsequitur in #1865
- When an explicit max width is specified don't override with the terminal's width by @Keboo in #1864
- Fix IsOptional method for arguments by @iBicha in #1862
- Seal Token class. by @andrewimcclement in #1876
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #1854
- Rename members to GetValue by @Keboo in #1787
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #1887
- Remove CompletionDelegate, CompletionSourceList and DirectiveCollection by @adamsitnik in #1946
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #1949
- Rename getDefaultValue to defaultValueFactory in Argument and Option by @jozkee in #1950
- replace ICompletionSource with a Func by @adamsitnik in #1952
- update required msbuild version by @brettfo in #1957
- since Option defines Arity, Option does not need to by @adamsitnik in #1958
- Moves and renames by @jozkee in #1951
- replace IInvocationResult with Action by @adamsitnik in #1948
- fluent APIs should return least restrictive result by @adamsitnik in #1964
- make AddValidator fluent by @adamsitnik in #1966
- enable CodeQL by @jonsequitur in #1866
- all default value factories should be generic by @adamsitnik in #1968
- Bump Newtonsoft.Json from 13.0.1 to 13.0.2 in /src/System.CommandLine.DragonFruit.Tests by @dependabot in #1985
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #1981
- make CompletionItem implement IEquatable by @adamsitnik in #1991
- First name and aliases cleanup by @adamsitnik in #1990
- introduce CompletionContext.Empty, remove Symbol.GetCompletions(void) by @adamsitnik in #1954
- Expose List properties, remove Add* methods by @adamsitnik in #1987
- Remove Argument.AllowedValues, use Validator to implement the logic by @adamsitnik in #1959
- Expose Command collection properties as mutable IList, remove AddCommand, AddOption and AddArugment methods by @adamsitnik in #1989
- Fluent APIs are not allowed in non-builder types by @adamsitnik in #1994
- Lambdas cleanup by @adamsitnik in #1995
- remove default Parser ctor by @adamsitnik in #1998
- Reducing allocations in parsing by @adamsitnik in #2001
- MS Docs -> MS Learn by @danielchalmers in #1880
- Added one test for DragonFruit when parsing
tag by @sebekkz in #2008 - add source-build pre-built detection by @oleksandr-didyk in #2012
- More parsing improvements by @adamsitnik in #2016
- SymbolResults improvements by @adamsitnik in #2024
- update msbuild version by @jonsequitur in #2028
- Build System.CommandLine.NamingConventionBinder during source-build by @MichaelSimons in #2026
- UnrecognizedArgument error should mention first invalid argument, not the last one by @adamsitnik in #2029
- More SymbolResult improvements by @adamsitnik in #2027
- Parent search bug fix by @adamsitnik in #2030
- more flexible error reporting for SymbolResult by @adamsitnik in #2033
- Translate to Spanish by @nportillo-msft in #1979
- Remove one layer of abstraction and multiple intermediate types by @adamsitnik in #2040
- Move version option out of middleware by @jonsequitur in #1969
- Move most of the built in middlewares out of middleware by @adamsitnik in #2043
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2022
- Moving CancelOnProcessTermination out of middleware, better cancellation support by @adamsitnik in #2044
- Rename Option.IsGlobal to AppliesToSelfAndChildren, make it public by @adamsitnik in #2060
- Remove non generic GetValue overloads by @adamsitnik in #2059
- Symbol.Description does not need to be virtual by @adamsitnik in #2045
- Localization by @adamsitnik in #2041
- introduce Command.Parse(CommandLineConfiguration) by @adamsitnik in #2062
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2061
- Name and aliases separation by @adamsitnik in #2073
- merge Validate clas into ArgumentValidation by @adamsitnik in #2077
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2075
- Types cleanup by @adamsitnik in #2076
- Introduce Directive Symbol type by @adamsitnik in #2063
- seal public classes which don't expose public ctors by @adamsitnik in #2081
- merge CommandLineStringSplitter into Parser by @adamsitnik in #2079
- Remove set handler overloads by @adamsitnik in #2089
- remove non-generic GetValueOrDefault and fix the usages by @adamsitnik in #2078
- Move BindingContext and related types to NamingConventionBinder project by @adamsitnik in #2093
- The handler should always return an integer by @adamsitnik in #2092
- fix the build by @adamsitnik in #2094
- introduce ParseResult.GetValue(string name) by @adamsitnik in #2083
- Introduce CliAction, make it possible for every Symbol to define one by @adamsitnik in #2095
- Remove RegisterWithDotnetSuggest by @adamsitnik in #2099
- Removing almost unused ConsoleExtensions by @adamsitnik in #2103
- Remove Middleware by @adamsitnik in #2100
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2088
- Trim away netframework targets in source-build by @NikolaMilosavljevic in #2110
- expose HelpOption and HelpAction, move help configuration to the action by @adamsitnik in #2102
- ProcessTerminationHandler: handle case where handler completes with an exception. by @tmds in #2113
- replace IConsole with two TextWriters in Configuration by @adamsitnik in #2106
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2120
- make CommandLineConfiguration mutable, remove CommandLineBuilder by @adamsitnik in #2107
- add
SetAction
overloads returningint
andTask<int>
by @jonsequitur in #2121 - Remove InvocationContext by @adamsitnik in #2108
- Rename Option/CommandResult.Token to IdentifierToken by @adamsitnik in #2122
- consolidate and clean up a few tests by @jonsequitur in #2123
- move IValueDescriptor to System.CommandLine.NamingConventionBinder by @adamsitnik in #2124
- merge ParseDirectiveAction and ParseResultExtensions into one internal type by @adamsitnik in #2125
- remove TokenCompletionContext, make CompletionContext non-abstract by @adamsitnik in #2126
- Remove dependencies by @adamsitnik in #2127
- merge HelpBuilderExtensions into HelpBuilder by @adamsitnik in #2130
- rename symbol types with
Cli
prefix by @jonsequitur in #2132 - rename Parser to CliParser and CommandLineConfiguration to CliConfiguration by @adamsitnik in #2136
- rename ParseDiagramDirective To DiagramDirective by @adamsitnik in #2135
- Update readme with daily-build versions URL by @am11 in #2138
- Custom Parser can return null by @adamsitnik in #2140
- dotnet-suggest-shim.bash: also suggest completions past the first word. by @tmds in #2134
- Rename files to match their class name changes. by @tmds in #2141
- test that CliConfiguration can be intentionally subclassed by @jonsequitur in #2148
- enable
CliAction
to be non-exclusive by @jonsequitur in #2147 - Removes the custom
GetHashCode
andEquals
overrides inHelpOption
andVerboseOption
by @jonsequitur in #2159 - don't use Value Tuples as they are expensive for startup perf by @adamsitnik in #2163
- Add
OptionResult.IdentifierTokenCount
property by @jonsequitur in #2164 - introduce
SymbolResult.Errors
by @jonsequitur in #2166 - API review updates by @jonsequitur in #2167
- Validation should not stop on the first reported error by @adamsitnik in #2170
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2171
- Use net8.0 TFM when building with source-build by @mthalman in #2150
- dotnet-suggest script: use appropriate line-endings. by @tmds in #2186
- dotnet-suggest-shim.bash: filter on word to complete. by @tmds in #2187
- add review comment to sb files by @oleksandr-didyk in #2204
- When TreatUnmatchedTokensAsErrors is set to false, there should be no errors reported for unmatched tokens by @adamsitnik in #2208
- subcommand completions should include root command recursive options completions by @adamsitnik in #2209
- Update dotnet-suggest install instructions. by @tmds in #2189
- Respect custom help builder during parse error reporting by @adamsitnik in #2211
- Fix #2210 by @jonsequitur in #2212
- Separate
CliAction
into synchronous and asynchronous types by @jonsequitur in #2205 - [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2180
- rename filename to appropriate one by @picu63 in #2217
- add CliOption.HasDefaultValue by @adamsitnik in #2218
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2219
- Move directives to
CliRootCommand
by @jonsequitur in #2224 - [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2225
- Remove redundant SourceBuildTrimNetFrameworkTargets property by @v-chayan in #2229
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2230
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2239
- Improve help sections layout. by @rvuistin in #2238
- Remove src/Directory.Build.(props/targets) from solution since they do not exist. by @andrewimcclement in #2241
- Fix #2226 by @jonsequitur in #2249
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2245
- Name based lookup fixes by @jonsequitur in #2255
- update CONTRIBUTING.md by @jonsequitur in #2274
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2258
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2228
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2278
- Fix extra newline on writing error output by @MiYanni in #2289
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2291
- Allow override of build tool framework version by @NikolaMilosavljevic in #2283
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2288
- Remove Microsoft.SourceBuild.Intermediate from prebuilt baseline by @ellahathaway in #2306
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2298
- Remove unnecessary Microsoft.CSharp pkg references by @ViktorHofer in #2313
- Clean-up test projects by @ViktorHofer in #2312
- chore: Centralize Package Management by @BenjaminMichaelis in #2311
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2318
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2319
- Fix CPM merge error by @ViktorHofer in #2321
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2322
- Update to Unified Build controls by @mmitche in #2328
- Move SB metadata to intermediates by @ellahathaway in #2330
- Remove DotNet-Blob-Feed variable from .vsts-ci.yml by @akoeplinger in #2327
- [main] Update dependencies to ensure coherency by @dotnet-maestro in #2333
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2320
- Fix race conditions when building command-line-api by @ViktorHofer in #2336
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2360
- Add official pipeline using 1ES template by @jjonescz in #2361
- Simplify pipelines by @jjonescz in #2376
- Update ApprovalTests dependency by @adamsitnik in #2446
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2368
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2354
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2447
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2460
- Add support for 9.0 VMR controls by @mmitche in #2488
- Update source-build team references by @MichaelSimons in #2496
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2492
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2504
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2509
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2507
- Cli prefix changes by @adamsitnik in #2512
- Do not use solution filter in non-source-build by @mmitche in #2515
- Fix ArgumentConverted for nullable args by @hoyosjs in #2524
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2519
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2518
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2517
- Add ValueType to Option by @MiYanni in #2530
- Remove illegal string manipulation by @GrabYourPitchforks in #2531
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2532
- Bump from 'beta4' to 'beta5' by @jeffhandley in #2533
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2535
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2538
- [main] Update dependencies from dotnet/source-build-reference-packages by @dotnet-maestro in #2540
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2539
- Update and rename SourceBuild.props to DotNetBuild.props by @ViktorHofer in #2541
- Update command line API category by @mmitche in #2544
- Dont stabilize version and set package project url by @ViktorHofer in #2546
- Move from FluentAssertions to AwesomeAssertions by @artl93 in #2547
- Enable Apple Silicon for dotnet suggest and test app by @artl93 in #2548
- Add source tag to Version.Details.xml by @dkurepa in #2549
- Add TSA and BinSkim to the official build by @MiYanni in #2555
- Enable ControlFlowGuard on the NativeAOT test by @jeffhandley in #2556
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2557
- Remove manual symbol conversion and dead property by @ViktorHofer in #2558
- some ergonomic improvements by @jonsequitur in #2559
- Fix dotnet-suggest zsh completion shim by @arussellk in #2481
- [main] Source code updates from dotnet/dotnet by @dotnet-maestro in #2561
- [main] Update dependencies from dotnet/arcade by @dotnet-maestro in #2560
- make HelpBuilder and related APIs internal by @adamsitnik in #2563
- Bump package versions from out-of-support 6.0 to 8.0 by @jeffhandley in #2543
- add GetRequiredValue to avoid null checks for required options by @adamsitnik in #2564
- Add new SetAction overload to avoid fire & forget silent error by @adamsitnik in #2565
New Contributors
- @JanKrivanek made their first contribution in #1756
- @hessenar made their first contribution in #1789
- @Tunduk made their first contribution in #1806
- @lbussell made their first contribution in #1803
- @alexperovich made their first contribution in #1831
- @shaggygi made their first contribution in #1793
- @iBicha made their first contribution in #1862
- @andrewimcclement made their first contribution in #1876
- @jozkee made their first contribution in #1950
- @dependabot made their first contribution in #1985
- @sebekkz made their first contribution in #2008
- @oleksandr-didyk made their first contribution in #2012
- @nportillo-msft made their first contribution in #1979
- @NikolaMilosavljevic made their first contribution in #2110
- @am11 made their first contribution in #2138
- @mthalman made their first contribution in #2150
- @picu63 made their first contribution in #2217
- @v-chayan made their first contribution in #2229
- @rvuistin made their first contribution in #2238
- @MiYanni made their first contribution in #2289
- @ellahathaway made their first contribution in #2306
- @akoeplinger made their first contribution in #2327
- @jjonescz made their first contribution in #2361
- @hoyosjs made their first contribution in #2524
- @GrabYourPitchforks made their first contribution in #2531
- @jeffhandley made their first contribution in #2533
- @artl93 made their first contribution in #2547
- @dkurepa made their first contribution in #2549
- @arussellk made their first contribution in #2481
Full Changelog: 2.0.0-beta4.22272.1...v2.0.0-beta5.25306.1