alpacahq / alpacahq/alpaca-trade-api-csharp
Migrate from legacy System.Linq.Async package
- Langage dominant
- C#
- Étoiles
- 301
- Forks
- 96
- Merge moyen
- 4 j 5 h
- PR mergées (30 j)
- 5
Description
**Description**
`System.Linq.Async` is now a legacy package. .NET 10 introduces `System.Linq.AsyncEnumerable`, which can also cause overlapping or ambiguous async-LINQ extension methods.
Replace `System.Linq.Async` with the supported async-LINQ packages while preserving behavior across all target frameworks.
**Scope**
- Inventory the async-LINQ operators currently used by production code and tests.
- Replace `System.Linq.Async` with `System.Linq.AsyncEnumerable`.
- Add `System.Interactive.Async` only for operators unavailable in `System.Linq.AsyncEnumerable`.
- Handle package references conditionally if `net10.0` can use the runtime implementation directly.
- Update the `ToAsyncEnumerable()` usage in `StatisticsTest`.
- Remove `System.Linq.Async` from production and test projects.
- Regenerate package lock files.
- Supersede or close PR #842.
- Exclude Broker API functionality.
**Acceptance criteria**
- No project references `System.Linq.Async`.
- No ambiguous async-LINQ extension methods occur under .NET 10.
- Existing pagination, statistics, and subscription behavior remains unchanged.
- All supported targets compile successfully.
- Debug tests and Release builds pass without warnings.
- Package and public API compatibility validation passes.
- Updated lock files are committed.
- Any required conditional package references are documented.
**References**
- [PR #842](https://github.com/alpacahq/alpaca-trade-api-csharp/pull/842)
- [.NET 10 async-enumerable breaking change](https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/10.0/asyncenumerable)
- [System.Linq.Async deprecation guidance](https://www.nuget.org/packages/System.Linq.Async/7.0.1)
- [System.Linq.AsyncEnumerable](https://www.nuget.org/packages/System.Linq.AsyncEnumerable)
- [System.Interactive.Async](https://www.nuget.org/packages/System.Interactive.Async)
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.