Skip to content

Releases: BrighterCommand/Fences

9.0.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 16:18

The first Fences release. Fences is a fork of Polly 8.7.0, published by Brighter Command as freely redistributable binaries with no Open Source Maintainers Fee.

  • Package identifiers are now Paramore.Fences.*: Polly.Core becomes Paramore.Fences.Core, Polly.Extensions becomes Paramore.Fences.Extensions, Polly.RateLimiting becomes Paramore.Fences.RateLimiting, Polly.Testing becomes Paramore.Fences.Testing, and Polly — the pre-v8 legacy API — becomes Paramore.Fences.
  • Namespaces are now Paramore.Fences.*. using Polly; becomes using Paramore.Fences;, and every namespace maps one-for-one.
  • PollyServiceCollectionExtensions is renamed to ResilienceServiceCollectionExtensions. This is the only public type whose name changed. It holds extension methods, so callers write services.AddResiliencePipeline(...) and rarely name the class.
  • Telemetry names changed, and a find-and-replace over your own source will not fix them: the meter and activity source Polly becomes Paramore.Fences, and the metrics resilience.polly.pipeline.duration, resilience.polly.strategy.events and resilience.polly.strategy.attempt.duration become resilience.fences.*. Dashboards, alerts and collector configuration need updating by hand.
  • Assemblies are signed with a new strong-name key, public key token 6998A40D28482B6D. Anything binding to Polly's old token needs rebuilding rather than redirecting.
  • Authenticode signing is dropped, matching the other Brighter Command projects.
  • Binaries are published free of charge under the BSD 3-Clause licence, with no revenue threshold and no fee.
  • Documentation is rewritten for Fences and published at https://brightercommand.github.io/Fences/
  • Packages are published from CI only, through NuGet trusted publishing, with build provenance attestation.

The API is unchanged

No strategy, option or behaviour was redesigned. This release is Polly 8.7.0's API under new names: retry, circuit breaker, timeout, rate limiter, hedging, fallback and chaos strategies all behave exactly as they did. The rename is namespaces, assemblies and package identifiers, plus the one type above.

Why Fences exists

Polly's source is BSD 3-Clause licensed and stays open source. That licence lets anyone redistribute it, in source or binary form, provided the copyright notice and disclaimer are retained. Building and publishing our own binaries from that source is squarely within the grant.

The Open Source Maintainers Fee is App vNext's policy for the binaries they publish. It governs their distribution. It does not change the licence on the source, and it does not reach binaries built by anyone else — and that freedom is the OSMF's own argument for being compatible with open source. It is one door, and it opens both ways.

Fences is the binary somebody else builds. See Why Fences exists and ADR 0002.

Migrating from Polly

For a project on Polly 8.7.0 this is a change of package reference and namespace, not a rewrite. See Migrate from Polly for the full mapping, including the one case Fences cannot help with: Microsoft.Extensions.Http.Resilience keeps Polly in your dependency graph regardless.

Provenance

Forked from App-vNext/Polly at commit 47e3b41 (Polly 8.7.0, 17 August 2026). Everything below that commit is the work of Polly's authors and contributors, and CHANGELOG.md retains their history in full. Fences is not affiliated with, endorsed by, or supported by App vNext or the Polly maintainers. See NOTICE.md and ACKNOWLEDGEMENTS.md.

9.0.0-alpha001

9.0.0-alpha001 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Aug 19:13
3ca31ef

What's Changed

New Contributors

Full Changelog: https://github.com/BrighterCommand/Fences/commits/9.0.0-alpha001