Skip to content

Bump Refit, Refit.Newtonsoft.Json and Refit.Reflection to 16.3.0 - #433

Merged
danielabbatt merged 2 commits into
mainfrom
dependabot/nuget/multi-b387e6275c
Sep 29, 2026
Merged

danielabbatt merged 2 commits into
mainfrom
dependabot/nuget/multi-b387e6275c

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Pinned Refit at 16.3.0.

Release notes

Sourced from Refit's releases.

16.3.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​053873c309b518d21aa128c246ff8c8b2e38bed4 feat(analyzers): explain why a method cannot generate and flag unbound route placeholders (#​2340) @​glennawatson

🔗 Full Changelog: reactiveui/refit@v16.2.0...v16.3.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

16.2.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​d864935e7f389e76cae04aecc8c8991712f8d050 feat(testing): add controllable streams, request capture and a test clock to Refit.Testing (#​2337) @​glennawatson
  • reactiveui/refit@​04187430b0a947b4d5d3280f3fd5ac6cfebe67c1 feat(bodies): typed JSON Lines uploads from IEnumerable and IAsyncEnumerable (#​2338) @​glennawatson

🧹 General Changes

  • reactiveui/refit@​2ecbf2a5613af71d6bcc51a7440a740f814685f1 chore: update packages, credit Refit's origins, remove stale files (#​2336) @​glennawatson
  • reactiveui/refit@​7aa89fa16df2a8c69811a07d5fca14d4121b999a chore: remove the Jekyll site files now that GitHub Pages redirects to reactiveui.net @​glennawatson

✅ Tests

  • reactiveui/refit@​a463e8a209976e19998d7c2125cd7829f6ebbc7c test(bodies): cover the remaining typed JSON Lines branches (#​2339) @​glennawatson

📝 Documentation

  • reactiveui/refit@​5d17ac99ebea81fe4c587c139297bf399c19145b docs(readme): name the programme behind each sponsor @​glennawatson
  • reactiveui/refit@​ceb75e82fb44241ca5f276b0d05dca44647c09bb docs(readme): link to the ReactiveUI sponsors page @​glennawatson
  • reactiveui/refit@​a330a6369aae657039cc075232608f4d20651da7 docs(readme): keep the README renderable on nuget.org @​glennawatson
  • reactiveui/refit@​176ebdbf5440f75e66961290769d8d006c99f4c1 docs: new Refit logo and official sponsor logos @​glennawatson
  • reactiveui/refit@​7333739298ab4994996f95d99724fff93b0616f5 docs(readme): credit OpenAI's Codex for Open Source support @​glennawatson

📦 Dependencies

  • reactiveui/refit@​b7ca0298c2b4c418e7b3b86fe659a5c3e31bc305 chore(deps): update dependency reactiveui.primitives to 8.1.0 (#​2334) renovate[bot]

🔗 Full Changelog: reactiveui/refit@v16.1.0...v16.2.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

🤖 Automated services that contributed: renovate[bot]

16.1.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​aa139a24f23e8a22db7c4047a3a3e2363ae611a2 feat: add lazy paging with generated PagedEnumerable methods (#​2332) @​glennawatson
  • reactiveui/refit@​bb98726d94195b8045dbdc9787da33ea87e28ba1 feat: register JSON contexts and accept JsonTypeInfo parameters (#​2333) @​glennawatson

📝 Documentation

  • reactiveui/refit@​9df07511c713cfbb296f9000220eb86edfdfa3e4 docs: point the code of conduct at the website @​glennawatson

📌 Other

  • reactiveui/refit@​5106e9c13eee42e5fd98948d93ecff2e33956709 Update copyright year in LICENSE file @​glennawatson

🔗 Full Changelog: reactiveui/refit@v16.0.0...v16.1.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

16.0.0

Summary

Refit 16.0.0 is a major version because the .NET 11 assemblies are built without runtime-async. The public API does not change.

Why runtime-async is off

  • In .NET 10 and older, the C# compiler adds a state machine to each async method. The state machine stores the local variables and tracks where to resume after each await.
  • .NET 11 adds a feature called runtime-async. The runtime does this work instead, so async code can run faster.
  • Refit 12.0.0 to 15.2.0 built the .NET 11 assemblies with runtime-async on. We did not use it with older .NET 8-10 nor .NET framework assemblies.
  • The feature needs a runtime that supports it. CoreCLR does, and Mono does not.
  • Blazor WebAssembly runs on Mono unless you opt into CoreCLR. WASI, Android API levels 21 to 23, and apps that set UseMonoRuntime=true also run on Mono.
  • Refit built with runtime-async can fail in every app that runs on Mono.
  • Microsoft builds its framework assemblies twice, once for each runtime. ASP.NET Core turns the feature on only for libraries inside the shared framework, and leaves it off for libraries that also ship on NuGet.
  • A NuGet package ships one build for every runtime, so Refit leaves the feature off. The feature is opt-in, so doing nothing is the correct setting.
  • Apps that target .NET 10 or older are not affected, because only the .NET 11 assemblies used the feature. Apps on .NET 11 that run on CoreCLR do not get the speed gain inside Refit's own async code.
  • You can turn on runtime-async in your own app if it runs only on CoreCLR.

Other changes

  • Refit has a documentation website at https://reactiveui.net/documentation/refit/. It has guides for requests, results, clients, serialization and testing, and one page that lists the full API.
  • The README is a short overview of the packages, the build requirements and the links to the website.
  • src/examples/Documentation has a project for every website page, plus larger samples for topics such as multipart uploads, serializers and compression. Each project builds with Refit.slnx and checks its results against local replies, so none needs a live service.
  • On older target frameworks, Refit checks the cancellation token before it buffers or reads HTTP content. A token that is already cancelled stops the operation before it starts.
  • Doc comments were corrected to match how Refit works. They state that [Options] sends OPTIONS, that [Url] accepts an empty path or /, and that [PathPrefix] does not add a leading slash. The Refit.Testing docs state that VerifyAllCalled ignores reusable and fallback routes.
  • The Blazor WebAssembly sample builds for .NET 10 and .NET 11. It uses a generated client and JSON source generation, and builds without trimmer warnings.
  • Refit depends on ReactiveUI.Primitives 8.0.0. On .NET 11, Refit.HttpClientFactory depends on Microsoft.Extensions.Http 11.0.0-rc.1, and other targets depend on 10.0.12.
  • SECURITY.md lists the supported versions and explains how to report a vulnerability through GitHub private reporting.
  • CI workflows drop code scanning of fork pull requests and pass sourceRef to the shared release workflow. Renovate handles package updates per target framework, and the generator snapshot tests use a small in-repo helper instead of the Verify packages.

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​6f0507fa061f1844a8da6ea92e839b622dfc74ef feat: expand generated request support & docs (#​2329) @​glennawatson
  • reactiveui/refit@​6445e423feb4a59b723f094829ecfca5e95473b4 feat: update nuget packages, update Renovate configuration, enhance generator tests, remove unused packages (#​2330) @​glennawatson
  • reactiveui/refit@​1459f55c5c1bcf8b385753013d75422b716454a3 feature: Remove runtime-async feature from Directory.Build.props (#​2331) @​glennawatson

🧹 General Changes

  • reactiveui/refit@​ba8f49211bdeb8273d506058e7098281e617a4ea ci: let the shared fork SonarCloud workflow resolve the pull request itself @​glennawatson
  • reactiveui/refit@​1542153ba821547d1706915fdd202a9fe9f601aa ci: remove SonarCloud scanning of fork pull requests @​glennawatson
  • reactiveui/refit@​7b1c3bedc3e811fcc9f1b42c29ac6b6d0929cf67 ci(lock): run the lock workflow at its own time of day @​glennawatson
  • reactiveui/refit@​dd2a75f077c9505650821a02b7bffde8473972f6 ci: pass sourceRef to the shared release workflow @​glennawatson

📝 Documentation

  • reactiveui/refit@​c2bd862967f163509f911e10cda564fa18e1df6d docs(readme): link combined API reference @​glennawatson
  • reactiveui/refit@​dee79fcb62c42dbb2ff3d1260ee952cfc77f3166 docs: add security policy @​glennawatson

📦 Dependencies

  • reactiveui/refit@​45fcc591e2a48d6c81de347baeb67d975f24e943 chore(deps): pin mcr.microsoft.com/dotnet/sdk docker tag to e622deb (#​2324) renovate[bot]
  • reactiveui/refit@​8b71ed09ae2e61f8a3d255dc6aa7132cdb851459 chore(deps): update dependency minver to v8 (#​2320) renovate[bot]
  • reactiveui/refit@​2d8976713c692c2b2f3f7f817886da4f4c8ab7e5 chore(deps): update dependency sonaranalyzer.csharp to 10.33.0.1635 (#​2316) renovate[bot]
    ... (truncated)

Commits viewable in compare view.

Pinned Refit.Reflection at 16.3.0.

Release notes

Sourced from Refit.Reflection's releases.

16.3.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​053873c309b518d21aa128c246ff8c8b2e38bed4 feat(analyzers): explain why a method cannot generate and flag unbound route placeholders (#​2340) @​glennawatson

🔗 Full Changelog: reactiveui/refit@v16.2.0...v16.3.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

16.2.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​d864935e7f389e76cae04aecc8c8991712f8d050 feat(testing): add controllable streams, request capture and a test clock to Refit.Testing (#​2337) @​glennawatson
  • reactiveui/refit@​04187430b0a947b4d5d3280f3fd5ac6cfebe67c1 feat(bodies): typed JSON Lines uploads from IEnumerable and IAsyncEnumerable (#​2338) @​glennawatson

🧹 General Changes

  • reactiveui/refit@​2ecbf2a5613af71d6bcc51a7440a740f814685f1 chore: update packages, credit Refit's origins, remove stale files (#​2336) @​glennawatson
  • reactiveui/refit@​7aa89fa16df2a8c69811a07d5fca14d4121b999a chore: remove the Jekyll site files now that GitHub Pages redirects to reactiveui.net @​glennawatson

✅ Tests

  • reactiveui/refit@​a463e8a209976e19998d7c2125cd7829f6ebbc7c test(bodies): cover the remaining typed JSON Lines branches (#​2339) @​glennawatson

📝 Documentation

  • reactiveui/refit@​5d17ac99ebea81fe4c587c139297bf399c19145b docs(readme): name the programme behind each sponsor @​glennawatson
  • reactiveui/refit@​ceb75e82fb44241ca5f276b0d05dca44647c09bb docs(readme): link to the ReactiveUI sponsors page @​glennawatson
  • reactiveui/refit@​a330a6369aae657039cc075232608f4d20651da7 docs(readme): keep the README renderable on nuget.org @​glennawatson
  • reactiveui/refit@​176ebdbf5440f75e66961290769d8d006c99f4c1 docs: new Refit logo and official sponsor logos @​glennawatson
  • reactiveui/refit@​7333739298ab4994996f95d99724fff93b0616f5 docs(readme): credit OpenAI's Codex for Open Source support @​glennawatson

📦 Dependencies

  • reactiveui/refit@​b7ca0298c2b4c418e7b3b86fe659a5c3e31bc305 chore(deps): update dependency reactiveui.primitives to 8.1.0 (#​2334) renovate[bot]

🔗 Full Changelog: reactiveui/refit@v16.1.0...v16.2.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

🤖 Automated services that contributed: renovate[bot]

16.1.0

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​aa139a24f23e8a22db7c4047a3a3e2363ae611a2 feat: add lazy paging with generated PagedEnumerable methods (#​2332) @​glennawatson
  • reactiveui/refit@​bb98726d94195b8045dbdc9787da33ea87e28ba1 feat: register JSON contexts and accept JsonTypeInfo parameters (#​2333) @​glennawatson

📝 Documentation

  • reactiveui/refit@​9df07511c713cfbb296f9000220eb86edfdfa3e4 docs: point the code of conduct at the website @​glennawatson

📌 Other

  • reactiveui/refit@​5106e9c13eee42e5fd98948d93ecff2e33956709 Update copyright year in LICENSE file @​glennawatson

🔗 Full Changelog: reactiveui/refit@v16.0.0...v16.1.0

🙌 Contributions

💖 Thanks to all the contributors: @​glennawatson

16.0.0

Summary

Refit 16.0.0 is a major version because the .NET 11 assemblies are built without runtime-async. The public API does not change.

Why runtime-async is off

  • In .NET 10 and older, the C# compiler adds a state machine to each async method. The state machine stores the local variables and tracks where to resume after each await.
  • .NET 11 adds a feature called runtime-async. The runtime does this work instead, so async code can run faster.
  • Refit 12.0.0 to 15.2.0 built the .NET 11 assemblies with runtime-async on. We did not use it with older .NET 8-10 nor .NET framework assemblies.
  • The feature needs a runtime that supports it. CoreCLR does, and Mono does not.
  • Blazor WebAssembly runs on Mono unless you opt into CoreCLR. WASI, Android API levels 21 to 23, and apps that set UseMonoRuntime=true also run on Mono.
  • Refit built with runtime-async can fail in every app that runs on Mono.
  • Microsoft builds its framework assemblies twice, once for each runtime. ASP.NET Core turns the feature on only for libraries inside the shared framework, and leaves it off for libraries that also ship on NuGet.
  • A NuGet package ships one build for every runtime, so Refit leaves the feature off. The feature is opt-in, so doing nothing is the correct setting.
  • Apps that target .NET 10 or older are not affected, because only the .NET 11 assemblies used the feature. Apps on .NET 11 that run on CoreCLR do not get the speed gain inside Refit's own async code.
  • You can turn on runtime-async in your own app if it runs only on CoreCLR.

Other changes

  • Refit has a documentation website at https://reactiveui.net/documentation/refit/. It has guides for requests, results, clients, serialization and testing, and one page that lists the full API.
  • The README is a short overview of the packages, the build requirements and the links to the website.
  • src/examples/Documentation has a project for every website page, plus larger samples for topics such as multipart uploads, serializers and compression. Each project builds with Refit.slnx and checks its results against local replies, so none needs a live service.
  • On older target frameworks, Refit checks the cancellation token before it buffers or reads HTTP content. A token that is already cancelled stops the operation before it starts.
  • Doc comments were corrected to match how Refit works. They state that [Options] sends OPTIONS, that [Url] accepts an empty path or /, and that [PathPrefix] does not add a leading slash. The Refit.Testing docs state that VerifyAllCalled ignores reusable and fallback routes.
  • The Blazor WebAssembly sample builds for .NET 10 and .NET 11. It uses a generated client and JSON source generation, and builds without trimmer warnings.
  • Refit depends on ReactiveUI.Primitives 8.0.0. On .NET 11, Refit.HttpClientFactory depends on Microsoft.Extensions.Http 11.0.0-rc.1, and other targets depend on 10.0.12.
  • SECURITY.md lists the supported versions and explains how to report a vulnerability through GitHub private reporting.
  • CI workflows drop code scanning of fork pull requests and pass sourceRef to the shared release workflow. Renovate handles package updates per target framework, and the generator snapshot tests use a small in-repo helper instead of the Verify packages.

🗞️ What's Changed

✨ Features

  • reactiveui/refit@​6f0507fa061f1844a8da6ea92e839b622dfc74ef feat: expand generated request support & docs (#​2329) @​glennawatson
  • reactiveui/refit@​6445e423feb4a59b723f094829ecfca5e95473b4 feat: update nuget packages, update Renovate configuration, enhance generator tests, remove unused packages (#​2330) @​glennawatson
  • reactiveui/refit@​1459f55c5c1bcf8b385753013d75422b716454a3 feature: Remove runtime-async feature from Directory.Build.props (#​2331) @​glennawatson

🧹 General Changes

  • reactiveui/refit@​ba8f49211bdeb8273d506058e7098281e617a4ea ci: let the shared fork SonarCloud workflow resolve the pull request itself @​glennawatson
  • reactiveui/refit@​1542153ba821547d1706915fdd202a9fe9f601aa ci: remove SonarCloud scanning of fork pull requests @​glennawatson
  • reactiveui/refit@​7b1c3bedc3e811fcc9f1b42c29ac6b6d0929cf67 ci(lock): run the lock workflow at its own time of day @​glennawatson
  • reactiveui/refit@​dd2a75f077c9505650821a02b7bffde8473972f6 ci: pass sourceRef to the shared release workflow @​glennawatson

📝 Documentation

  • reactiveui/refit@​c2bd862967f163509f911e10cda564fa18e1df6d docs(readme): link combined API reference @​glennawatson
  • reactiveui/refit@​dee79fcb62c42dbb2ff3d1260ee952cfc77f3166 docs: add security policy @​glennawatson

📦 Dependencies

  • reactiveui/refit@​45fcc591e2a48d6c81de347baeb67d975f24e943 chore(deps): pin mcr.microsoft.com/dotnet/sdk docker tag to e622deb (#​2324) renovate[bot]
  • reactiveui/refit@​8b71ed09ae2e61f8a3d255dc6aa7132cdb851459 chore(deps): update dependency minver to v8 (#​2320) renovate[bot]
  • reactiveui/refit@​2d8976713c692c2b2f3f7f817886da4f4c8ab7e5 chore(deps): update dependency sonaranalyzer.csharp to 10.33.0.1635 (#​2316) renovate[bot]
    ... (truncated)

Commits viewable in compare view.

@dependabot dependabot Bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Sep 28, 2026
@codacy-production

codacy-production Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

🟢 Metrics 0 complexity

Metric Results
Complexity 0

View in Codacy

🟢 Coverage ∅ diff coverage · +0.00% coverage variation

Metric Results
Coverage variation ✅ +0.00% coverage variation
Diff coverage ✅ ∅ diff coverage

View coverage diff in Codacy

Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (fc826dd) 7841 2915 37.18%
Head commit (bd09bc7) 7841 (+0) 2915 (+0) 37.18% (+0.00%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#433) 0 0 ∅ (not applicable)

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

AI Reviewer: run a review on demand. To trigger the first review automatically, go to your organization or repository integration settings. AI can make mistakes. Always validate suggestions.

Run reviewer

TIP This summary will be updated as you push new changes.

@danielabbatt

Copy link
Copy Markdown
Contributor

@dependabot rebase

Bumps Refit from 15.2.0 to 16.3.0
Bumps Refit.Reflection from 15.2.0 to 16.3.0

---
updated-dependencies:
- dependency-name: Refit
  dependency-version: 16.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
- dependency-name: Refit.Reflection
  dependency-version: 16.3.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/nuget/multi-b387e6275c branch from 44ae60c to 6b6e08b Compare September 29, 2026 14:13
Dependabot's companion PR for Refit.Newtonsoft.Json (#432) closed itself,
which would have left the serializer on Refit 15 while Refit and
Refit.Reflection move to 16. Bump it here so all three ship together, and
record the upgrade in the changelog.
@danielabbatt danielabbatt changed the title Bump Refit and Refit.Reflection Bump Refit, Refit.Newtonsoft.Json and Refit.Reflection to 16.3.0 Sep 29, 2026
@danielabbatt

Copy link
Copy Markdown
Contributor

Added Refit.Newtonsoft.Json 16.3.0 to this PR. Its own Dependabot PR (#432) closed itself, and merging this one alone would have left our serializer on Refit 15 while Refit and Refit.Reflection moved to 16.

Refit 16's public API is unchanged; the major version is because its .NET 11 build no longer uses runtime-async. The RF015 errors that first blocked this upgrade were real bugs, fixed in #434. Locally with all three on 16.3.0: build clean with no Refit analyzer warnings, offline tests 420/420. Changelog entry 1.74.16 added.

@danielabbatt
danielabbatt merged commit 7633d4c into main Sep 29, 2026
7 checks passed
@dependabot
dependabot Bot deleted the dependabot/nuget/multi-b387e6275c branch September 29, 2026 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant