Repository navigation
chore!: target net10.0 and Microsoft.Azure.Cosmos 3.62.0 - #35
Closed
xperiandri wants to merge 4 commits into
Closed
xperiandri wants to merge 4 commits into
xperiandri wants to merge 4 commits into
Conversation
* `net8.0` -> `net10.0` in the library, test and FAKE build projects; the commented analyzer block in `Directory.Build.props` follows the new TFM * `Microsoft.Azure.Cosmos` 3.60.0 -> 3.62.0 (maintainer decision) * Remove the `System.Linq.Async` 6.0.0 central version pin: no project references it directly and no package brings it transitively (`project.assets.json` lists it only under `centralPackageVersions`), and on `net10.0` `System.Linq.AsyncEnumerable` is part of the framework * Remove the `System.Formats.Asn1` reference and pin from the build project: on `net10.0` NuGet prunes it as part of the framework and warns NU1510 * README: the SDK requirement is the 10.0 SDK pinned in `global.json` * CHANGELOG: Unreleased entry; the next release is 2.0.0 BREAKING CHANGE: the package targets net10.0 only; net8.0 is no longer supported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every project now targets `net10.0`, and none of the pinned dotnet tools needs the .NET 8 runtime although their manifest entries keep `rollForward: false` (the tool's own runtimeconfig decides): * fantomas 8.0.5 and fslangmcp 0.18.0 ship `tools/net10.0` * fsharp-analyzers 0.31.0 (`tools/net8.0`) and fsdocs-tool 20.0.1 (`tools/net6.0`) set `rollForward: LatestMajor` in their runtimeconfig * dotnet-reportgenerator-globaltool 5.4.7 (`tools/net8.0`, `tools/net9.0`) sets `rollForwardOnNoCandidateFx: 2` (major) Each tool was started on a private dotnet root holding only Microsoft.NETCore.App 10.0.12, where a `net8.0` app with the default policy fails to start. The docs workflow already installed only 10.x. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
For `net10.0` projects the .NET 10 SDK defaults `NuGetAuditMode` to `all`, so restore now audits transitive packages and warns NU1902 for Microsoft.Build.Tasks.Git 10.0.300 (GHSA-23fw-v26w-5fgq, CVE-2026-62900, affected 10.0.300-10.0.301, patched in 10.0.303). 10.0.401 matches the SDK pinned in `global.json`. The package is build-only (`PrivateAssets=all`) and does not reach consumers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`updateChangelog` copies the Unreleased items verbatim into the release entry, the NuGet release notes and the GitHub release, so a replay of the FAKE `UpdateChangelog` target for 2.0.0 published "the next release is a major version (2.0.0)" inside the 2.0.0 entry itself. The breaking-change item now reads correctly both before and after the release. The `System.Linq.Async` item is dropped: the pin never reached any restore graph or the package, so consumers see no change, and the changelog lists no repository-only chores in earlier releases either (SDK migration, transitive pinning, tool updates). The commit that removed the pin keeps the explanation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The breaking runtime and Cosmos SDK upgrades warrant human confirmation of cross-platform CI and Linux-emulator results.
Review effort: Balanced
Findings: None
What changed in this PR
Implements ADR 0001’s first migration step, moving the library and supporting projects to .NET 10 for the planned 2.0.0 release.
Changes:
- Retargets projects and standardizes development and CI environments on .NET 10.
- Updates Cosmos and SourceLink dependencies and removes unused package entries.
- Documents SDK requirements and breaking compatibility changes.
| File | Description |
|---|---|
| tests/Cosmos.Tests/FSharp.Azure.Cosmos.Tests.fsproj | Targets tests at .NET 10. |
| src/Cosmos/FSharp.Azure.Cosmos.fsproj | Targets the library at .NET 10 only. |
| README.md | Updates SDK requirements. |
| Directory.Packages.props | Updates dependencies and removes unused pins. |
| Directory.Build.props | Updates a commented-out framework condition. |
| CHANGELOG.md | Documents framework and Cosmos breaking changes. |
| build/build.fsproj | Retargets build tooling and removes the ASN.1 reference. |
| .github/workflows/publish_release.yml | Removes .NET 8 installation. |
| .github/workflows/publish_ci.yml | Removes .NET 8 installation. |
| .github/workflows/copilot-setup-steps.yml | Removes .NET 8 installation. |
| .github/workflows/build.yml | Removes .NET 8 installation. |
| .devcontainer/devcontainer.json | Installs only .NET 10. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
This was referenced Oct 2, 2026
Merged
Collaborator
Author
|
Split as requested into #37 ( 🤖 Generated with Claude Code |
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.
Proposed Changes
Phase 0 step 1 of ADR 0001:
net8.0->net10.0for the library, the tests and the build project; README requirement updated.Microsoft.Azure.Cosmos3.60.0 -> 3.62.0. Its release notes contain a breaking change of their own: thin client mode is on by default and does not support resource-token authentication (AZURE_COSMOS_THIN_CLIENT_ENABLED=falseopts out).System.Linq.Asyncpin (never in any restore graph; on net10.0System.Linq.AsyncEnumerableis in the box) and theSystem.Formats.Asn1reference of the build project (NU1510 after retargeting).Microsoft.SourceLink.GitHub10.0.300 -> 10.0.401 (NU1902, GHSA-23fw-v26w-5fgq affects 10.0.300-10.0.301). Separate commit, can be dropped.Unreleasedentry; the FAKEUpdateChangelogreplay for 2.0.0 produces a correct entry.Types of changes
Dropping
net8.0makes the next release 2.0.0.Checklist
Further comments
main; Fantomas leaves no diff;build.cmd DotnetBuild,BuildDocsand theDotnetPackchain pass; the package contains onlylib/net10.0.main. With the default 32 workers bothmainand this branch get 500/503 responses from the local emulator on container creation; the shared test infrastructure pull request that follows adds a partition budget for that. CI uses the Linux emulator.🤖 Generated with Claude Code