v0.6.0-rc2: ExecuteAsync API Consistency
Pre-release
Pre-release
·
750 commits
to master
since this release
π Release Candidate 2: ExecuteAsync API Consistency
This release introduces a BREAKING CHANGE that brings complete API consistency to all ExecuteAsync methods.
π₯ Breaking Change
All ExecuteAsync() methods now consistently return Task<ExecutionResult> instead of Task.
Before (Inconsistent):
// Some returned ExecutionResult
ExecutionResult result = await Run("echo", "test").ExecuteAsync();
// Others returned void
await DotNet.Build().ExecuteAsync(); // No result available\!After (Consistent):
// ALL ExecuteAsync methods now return ExecutionResult
ExecutionResult result = await Run("echo", "test").ExecuteAsync();
ExecutionResult result = await DotNet.Build().ExecuteAsync();
ExecutionResult result = await Fzf.Run().ExecuteAsync();
// Use throwaway variable if result not needed
_ = await DotNet.Test().ExecuteAsync();β¨ What You Get
Every ExecuteAsync call now provides access to:
ExitCode- The process exit codeStandardOutput- The complete stdoutStandardError- The complete stderrStartTime,ExitTime,RunTime- Execution timing details
π Scope of Changes
- 65 methods updated across 22 files
- 100% API consistency achieved
- Zero test failures - all 30 test suites pass
- Affects: All DotNet commands, Fzf, Ghq, Gwq builders
π Migration Guide
If you don't need the ExecutionResult, use a throwaway variable:
// Old code that just executed
await DotNet.Build().ExecuteAsync();
// New code options:
_ = await DotNet.Build().ExecuteAsync(); // Discard result
// OR
var result = await DotNet.Build().ExecuteAsync(); // Use resultπ― Also Includes
- TestRunner pattern implementation from RC1
- CI/CD workflow fixes for NuGet publishing
- 100% test success rate maintained
Full Changelog: v0.6.0-rc1...v0.6.0-rc2