alpacahq / alpacahq/alpaca-trade-api-csharp

Migrate from legacy System.Linq.Async package

Ouverte
#847 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
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.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.