Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Agents discover servers from #file:'.mcp.json'; these are only hints on when to
* When a method must return non-generic `Task`, annotate the return type explicitly: `member _.MyMethod (...) : Task = task { ... }`. Never cast through pipelines.
* `task` CE can await `ValueTask` APIs directly.
* Curried functions take the `CancellationToken` as their **first** parameter, so that it can be partially applied.
* Never hand-roll wrappers such as `ValueTask (task { ... })`, `.AsTask ()` round-trips or manual `unit -> Task` thunks. Use the matching [`IcedTasks`](https://github.com/TheAngryByrd/IcedTasks) CE instead (`valueTask`, `valueTaskUnit`, `taskUnit`, `coldTask`, `cancellableTask`, `cancellableValueTask`, `backgroundTask`, …) and always use the full CE names, not the short aliases (`vTask`, `pvTask`, …). This library does not reference `IcedTasks` yet – adding it introduces a transitive dependency for every consumer, so confirm with the maintainers first.
* Never hand-roll wrappers such as `ValueTask (task { ... })`, `.AsTask ()` round-trips or manual `unit -> Task` thunks. Use the matching [`IcedTasks`](https://github.com/TheAngryByrd/IcedTasks) CE instead (`valueTask`, `valueTaskUnit`, `taskUnit`, `coldTask`, `cancellableTask`, `cancellableValueTask`, `backgroundTask`, …) and always use the full CE names, not the short aliases (`vTask`, `pvTask`, …). The maintainers confirmed the `IcedTasks` dependency on 2026-09-27. Debug builds on the pinned SDK run every resumable computation expression through its builder's dynamic implementation (dotnet/fsharp#20466), so library code uses a builder only once every one of its probes in `IcedTasksProbeTests` passes in both Debug and Release, none skipped. With `IcedTasks` 0.11.10-beta001, the first release whose dynamic implementation starts every cold and cancellable value with a state machine of its own (TheAngryByrd/IcedTasks#67), that holds for `valueTask`, `valueTaskUnit`, `cancellableTask` and `cancellableValueTask`; every other builder needs probes first. Referencing `IcedTasks` from the library makes it a transitive dependency for every consumer.

### Values and Collections

Expand Down
1 change: 1 addition & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<PackageVersion Include="FSharp.Control.TaskSeq" Version="1.0.0" />
<PackageVersion Include="FSharp.Core" Version="10.0.100" />
<PackageVersion Include="FsToolkit.ErrorHandling" Version="5.0.0" />
<PackageVersion Include="IcedTasks" Version="0.11.10-beta001" />
</ItemGroup>
<ItemGroup Label="Build and Test">
<PackageVersion Include="Argu" Version="6.2.5" />
Expand Down
3 changes: 3 additions & 0 deletions tests/Cosmos.Tests/FSharp.Azure.Cosmos.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
<ItemGroup>
<Compile Include="TestCategories.fs" />
<Compile Include="TestAssembly.fs" />
<Compile Include="IcedTasksProbeTests.fs" />
<Compile Include="IterationExtensionsUnitTests.fs" />
<Compile Include="CosmosNameTests.fs" />
<Compile Include="ResponseMessageTests.fs" />
Expand All @@ -39,6 +40,8 @@
</ItemGroup>

<ItemGroup>
<!-- Referenced directly rather than through the library: the probe tests gate whether library code may use IcedTasks at all. -->
<PackageReference Include="IcedTasks" />
<PackageReference Include="MSTest" />
<PackageReference Include="Unquote" />
</ItemGroup>
Expand Down
Loading
Loading