Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge v5.0-alpha to master, for v5.0.3 RTM #198

Merged
merged 87 commits into from
Jan 5, 2017
Merged

Merge v5.0-alpha to master, for v5.0.3 RTM #198

merged 87 commits into from
Jan 5, 2017

Conversation

reisenberger
Copy link
Member

Merge v5.0-alpha to master, to create v5.0.3 RTM

reisenberger and others added 30 commits September 3, 2016 15:10
Remove .NET3.5 support from Polly
Provide .NET4.0 support uniquely through the Polly.Net40Async package.
Remove separate Polly.Net40 package, which contained only synchronous
support.
Remove sync/async code forking from codebase, as all targets now support
async.  Simplify name of NET40 compile constant.
Discontinue .NET3.5 support from v5.0; Rationalise .NET4.0 support
Remove ContextualPolicy (not part of documented API).  Support for
executing with context is now in the Policy base class.
Provide contextual execution support through `Policy` base class, from v5.0
Add CancellationToken support to sync executions.  Thanks to @brunolauze
for the initial implementation!
Refine cancellation support to sync retry so that it maches async
cancellation.  Can cancellation before execution, between retries, and
in any wait between retries.  Add unit tests covering all of this.
Refine cancellation support to sync breaker, so that it matches async
cancellation.  Can cancel before execution and during execution.  Add
unit tests covering cancellation during sync actions through breakers.
…xecutions

Add Cancellation support for sync executions.  Thanks to @brunolauze for the initial implementation.
Add functional composition syntax for PolicyWrap - instance and static
variants - synchronous form only.  Add units tests for same.
Add functional composition syntax for PolicyWrap - instance and static
variants - asynchronous form.  Add units tests for same.
…itionSyntax

Add PolicyWrap (functional composition syntax) for v5.0
Add Fallback policy
Reduce allocations by sharing single static allocation for policies where certain predicates are irrelevant
* Add PolicyKeys, and execution context to Context

Add PolicyKeys, and specs; Add execution context to the Context class;
Adjust Execute() overloads so that all executions will carry a Context;
Add overloads taking a Context, allowing for Context(executionKey) to be
passed into execution; remove unnecessary usages of Context.Empty;
rationalise ExecuteAsync overloads to remove mismatches between
overloads taking and delegates taking a CancellationToken; rationalise
messages about sync-vs-async overloads.

* Specs on Policy passing Keys to execution Context

Add specs verifying policy executions pass policy keys and execution
context, to executions

* Specs on PolicyWrap passing keys to execution Context

Add specs that executions through a PolicyWrap pass the PolicyKey of the
outermost PolicyWrap to the execution Context, as the PolicyWrapKey
property.
Merge bulkhead policy into v5.0-alpha branch (ready for cross-team review later)
Ensure WaitAndRetryForeverAsyncSpecs tidy up after themselves
Strengthen async tests by introducing extra awaits.  (Most async
test-helper methods return a Task on a synchronous path, so no practical
execution difference; but better demonstrates usage pattern, and defends
us for different test-helper implementations in future.)
Use TaskHelper consistently for empty, completed tasks
Add TimeoutPolicy and full suite of specs
Defend timeout spec from timing issues (reduce effect of speed the specs
run at on build machine)
dreisenberger and others added 24 commits November 11, 2016 22:33
Add CLSCompliant attribute to Polly assemblies.  Fixes #159
Update v5.0.2 change descriptions.  Update nuget search tags.  Shorten
.NET4.0Async package description as recommended by nuget tool.
Remove Polly.pcl project and nuget pkg, in favour of NetStandard1.0
project/package.  Target PCL tests at NetStandard1.0 package. Update
doco/project descriptions to match. Other minor documentation tidying.
* Add Polly.Net40Async.specs

* Update ChangeLog

Update ChangeLog: Added Polly.Net40Async specs project.

* Update Polly.Net40Async.nuspec
* Add Polly.Net40Async.specs

* Add async .NET40 support for BulkheadPolicy

Adds async .NET40 support for BulkheadPolicy. Requires the .NET40Async
package taking a dependency on Nito.AsyncEx. Requires updating
MicrosoftBcl dependencies to latest.  Requires
removing CLSCompliant attribute from Net40Async package: Nito.AsyncEx is
not CLS-compliant.
Add Stephen Cleary's Nito.AsyncEx library to 3rd-party library
acknowledgements
Refine cancellable synchronous WaitAndRetry.  Bump version to v5.0.3
Fix Retry policies for issue 188: Where a user delegate does not observe
cancellation during the final try, Polly will now honour the delegate's
outcome rather than throw for the unobserved cancellation.
Refine CircuitBreaker policies for issue 188: Where a user delegate does
not observe cancellation, Polly will now honour the delegate's outcome
rather than throw for the unobserved cancellation
Refine TimeoutPolicy cancellation.  In pessimistic executions (where we
do not expect the user delegate to observe cancellation tokens), only
allow the timeout token to walk away from the execution, as
(intentionally) only timeout cancellation captures the abandoned task to
the onTimeout delegate. Related specs.
Refine Fallback policies for issue 188: Where a user delegate does not
observe cancellation, Fallback policy will now respond to the delegate's
outcome rather than throw for the unobserved cancellation.
Update nuspec and changelog.md for v5.0.3 RTM
Refine Cancellable synchronous `WaitAndRetry()` implementation
Refine cancellation in Retry, CircuitBreaker, Timeout and Fallback policies
Organise specs by Policy type, into subfolders
Move specs into namespaces, by policy type
Organise filesets by policy type
Increase test tolerance for slower/inconsistent AppVeyor running
@dnfclas
Copy link

dnfclas commented Jan 3, 2017

Hi @reisenberger, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!

The agreement was validated by .NET Foundation and real humans are currently evaluating your PR.

TTYL, DNFBOT;

@reisenberger reisenberger added this to the 5.0.3 RTM milestone Jan 3, 2017
@joelhulen joelhulen merged commit e9269ad into master Jan 5, 2017
@joelhulen
Copy link
Member

Merged. This is a big one! Thanks for everything you do, @reisenberger 💯

@reisenberger reisenberger deleted the v5.0-alpha branch March 25, 2017 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants