Repository navigation
Make Funcky.Async coexist with the async APIs integrated into Funcky - #886
Merged
Merged
Conversation
Funcky 3.6.0 moved the async APIs into the Funcky package on .NET 10 (where System.Linq.AsyncEnumerable is part of the BCL), while Funcky.Async kept shipping the same types for older frameworks. A project referencing both packages on net10.0 therefore failed with CS0433 (ambiguous types). * Add a net10.0 target to Funcky.Async that contains only type forwards to Funcky and no System.Linq.Async dependency. Older targets are unchanged. * Record the two intentional API differences between the net9.0 and net10.0 assets (Chunk(int) overload, IAsyncGrouping return type of AdjacentGroupBy) in CompatibilitySuppressions.xml and the changelog. * Back-port the cancellation fix for Interleave and Merge (previously only in Funcky) to Funcky.Async and add tests for it. * Fix the changelog, README, package readme and a doc comment that claimed the Funcky.Async package no longer exists. * Bump Funcky to 3.6.1 and Funcky.Async to 1.5.0. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
JudoJosef
approved these changes
Oct 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Funcky 3.6.0 moved the async APIs into the
Funckypackage on .NET 10 (whereSystem.Linq.AsyncEnumerableis part of the BCL), whileFuncky.Asynckept shipping the same types for older frameworks. A project referencing both packages onnet10.0therefore failed withCS0433(ambiguous types), and the changelog claimed the package no longer existed.net10.0target toFuncky.Asyncthat contains only type forwards toFunckyand noSystem.Linq.Asyncdependency. Older targets are unchanged and keep the full implementation.net9.0andnet10.0assets (Chunk(int)overload,IAsyncGroupingreturn type ofAdjacentGroupBy) inCompatibilitySuppressions.xmland the changelog.InterleaveandMerge(previously only inFuncky, Propagate cancellation token in async Merge #880) toFuncky.Asyncand add tests for it in both test suites.Funcky.Asyncpackage no longer exists.Funckyto 3.6.1 andFuncky.Asyncto 1.5.0.Verification
dotnet pack Funcky.Async -c Release -p:TreatWarningsAsErrors=true: clean; package validation follows the type forwards and only reports the two suppressed, documented differences.net10.0dependency group containing onlyFuncky.net10.0console app referencing bothFunckyandFuncky.Asynccompiles and runsAsyncSequence,Chunk,FirstOrNoneAsync, theOption<Task<T>>awaiter,AsyncFunctional.RetryAsyncandIAsyncBuffer.Funcky.Async.Test: 325 passed onnet9.0and onnet8.0withSystem.Linq.Async5.0.0.Funcky.Test(net10.0) asyncInterleave/Mergetests: 22 passed.Funcky.Analyzers.Test).🤖 Generated with Claude Code