refactor: EtlPipeline.From as extension method (clear S2325) - #284
Merged
Conversation
Move both From overloads out of EtlPipeline into a new static
EtlPipelineSourceExtensions class as extension methods on EtlPipeline.
Bodies are verbatim; call site stays Create().From(...). Extension methods
are static, so S2325 ("make From static") is satisfied while the fluent
syntax is preserved and From is now the same shape as format-package source
factories. Avoids the binary-breaking lock-in of shipping instance From.
PublicAPI.Shipped.txt updated (From entries -> extension class + new type).
src clean across all TFMs (0 warnings), 282 tests pass, Example8 builds.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5 tasks
This was referenced Jul 22, 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.
Redo of the From→extension conversion, now on top of current vNext (post-#283).
Moves both
Fromoverloads out ofEtlPipelineinto a newEtlPipelineSourceExtensionsstatic class asthis EtlPipelineextension methods. Bodies verbatim;Create().From(...)unchanged. Extension methods are static → clears the two S2325 warnings, andFromnow matches the format-package source-factory shape. Ships 0.16.0 without the instance-Frombinary-break lock-in.Through/To/AsAsyncEnumerableuntouched (real interface instance methods).PublicAPI.Shipped.txtupdated. src clean all TFMs (0 warnings), 282 tests pass, Example8 (both TFMs) builds.Merge → vNext → then #278 (vNext→main) carries it → 0.16.0.