Revision history for Perl extension Promises

1.04 2020-02-23
 [ENHANCEMENTS]
 - P::D::EV has a new `cleanup` class method clearing up the EV handler.
   (GH#91, wangvisual)

 [STATISTICS]
 - code churn: 4 files changed, 173 insertions(+), 160 deletions(-)

1.03 2020-01-06
 [BUG FIXES]
 - Modified tests as AnyEvent began to fail when waiting for 0 seconds.
   (GH#88)

 [DOCUMENTATION]
 - Add two more promise modules in SEE ALSO. (GH#90, FGasper)
 - Add directives to how to install from master. (GH#89)

 [ENHANCEMENTS]
 - In similar vain to PR61, optimize _notify_backend for Mojo. (GH#86, Erik
   Huelsmann)

 [STATISTICS]
 - code churn: 12 files changed, 153 insertions(+), 24 deletions(-)

1.02 2019-06-22
 [DOCUMENTATION]
 - Fixed pod error as reported by CPANTS. (GH#83, Mohammad S Anwar)

 [ENHANCEMENTS]
 - In similar vain to PR #61, optimize _notify_backend (for IO::Async).
   (GH#85, Erik Huelsmann)

 [STATISTICS]
 - code churn: 3 files changed, 31 insertions(+), 9 deletions(-)

1.01 2019-06-15
 [ENHANCEMENTS]
 - Performance enhancements. (GH#61, GH#83, Erik Huelsmann, Tom van der
   Woerdt)

 [STATISTICS]
 - code churn: 7 files changed, 159 insertions(+), 57 deletions(-)

1.00 2019-05-15
 [BUG FIXES]
 - Change inner working of collect() so that it deals with being passed
   nothing. (GH#82)
 - warn_on_unhandled_reject: deal with case where there is no caller.
   (Peter Valdemar Morch, GH#76)

 [DOCUMENTATION]
 - Remove extra bracket in example. (perlover, GH#78)
 - Minor text changes in POD. (manwar, GH#79)
 - Mention other modules implementing promises. (GH#64)

 [ENHANCEMENTS]
 - add Promises::Sub. (GH#54, yanick)

 [STATISTICS]
 - code churn: 13 files changed, 304 insertions(+), 65 deletions(-)

0.99 2017-10-29
 [BUG FIXES]
 - skip all backend compile tests (RT#123404)

 [STATISTICS]
 - code churn: 2 files changed, 11 insertions(+), 3 deletions(-)

0.98 2017-10-22
 [BUG FIXES]
 - removed hard-dependency on the different backends.

 [STATISTICS]
 - code churn: 3 files changed, 120 insertions(+), 161 deletions(-)

0.97 2017-10-22
 [DOCUMENTATION]
 - Add a reference to the IO::Async deferred backend. (GH#71, Luke
   Triantafyllidis)

 [ENHANCEMENTS]
 - add new function 'collect_hash'. (GH#52, yanick)
 - add 'timeout' method. (GH#70, yanick)

 [MISC]
 - make tests use proper api. (TdvW)
 - have test load AnyEvent. (GH#72, Luke Triantafyllidis)

 [STATISTICS]
 - code churn: 29 files changed, 640 insertions(+), 50 deletions(-)

0.96 2017-08-26
 - Promotion of trial release to the real deal.

0.94 Monday, December 29, 2014
 - fixing the other side of the AutoPrereqs  issue, which is actually
   making sure that test runs succeed if you do not have those pre-reqs,
   again, sorry about this.

0.93 Wednesday, April 9th, 2014
 - fix the AutoPrereqs issue so that EV, AE, AnyEvent and Mojo::IOLoop are
   not required anymore, sorry about that.

0.92 Wednesday, April 9th, 2014
 - just a quick update to make Mojo::IOLoop recommended instead of
   required.

0.91 Wednesday, March 19th, 2014
 - fixed issue with re-resolved promises not working correctly - thanks to
   Gregory Oschwald for the bug - thanks to Clinton Gormley for the fix -
   github issue #28 & #29
 - thanks to Sean Zellmer for some typo fix

0.90 Saturday, Feb. 8th, 2014
 - !!
 - BACKWARDS COMPATIBILITY WARNING   !!
 - !!
 - This is the first step towards full !!
 - compatibility with the Promises/A+ !!
 - spec, at which we will declare this !!
 - to be module to be 1.0  !!
 - NOTE: Pretty much everything in this release is thanks to the work of
   Clinton Gormley++
 - Fixed the behavior of finally() to make sure @results are passed along
   correctly
 - Handle any "then"-able object to be returned as a result, instead of
   only accepting Promise objects
 - then/done/finally now accept both callbacks (CODE refs) and "Callable"
   objects (objects of classes that overload the CODE de-ref operator)
 - New docs in Promises::Cookbook::GentleIntro.
 - Doc fixes and CPAN repository metadata added, thanks to David
   Steinbrunner for this

0.08 Tuesday, Jan. 21, 2014
 - Thanks to clinton gormley for all these
 - changes. Please take note of the backcompat
 - breaking change for finalize().
 - then() callbacks are now wrapped in an eval block to prevent fatal
   exceptions and to ensure that rejected promises are propagated correctly
 - renamed finalize() to done()
 - added catch() sugar which takes just an error handler
 - added finally() handler which will always be called, regardles of
   whether the promise is resolved or rejected, much like try/catch/finally

0.07 Saturday, Jan. 18, 2014
 - fixing a issues with localizing exceptions that were found by CPAN
   testers - thanks to clinton gormley for providing the fix for this

0.06 Friday, Jan. 17, 2014
 - make sure to clear both resolved and rejected callbacks after
   resolution, thanks to clinton gormley for this.
 - add event-loop specific backends to allow promises to be resolved in an
   async manner (as Promises/A+ suggests) - thanks to clinton gormley for
   starting this feature - backend created for AE, AnyEvent and EV -
   backend for Mojo::IOLoop, thanks to clinton gormley for this - tests
   added
 - add in finalize() operator for ending a chain of promises (see docs for
   more info) - thanks to clinton gormley for this feature, docs and tests

0.05 Monday, Dec. 23, 2013
 - catch exceptions in any callback and call reject if they happen
 - the 'promise' method on deferred objects will now return a new
   Promises::Promise instance each time it is called - this prevents the
   memory cycle we originally had

0.04 Thursday, Oct. 17, 2013
 - DEPRECATION WARNING ***
 - The 'when' helper in Promises.pm is being deprecated because it clashes
   with the perl keyword. See RT #84024 for more info.
 - 'when' renamed to 'collect' - tests and docs adjusted accordingly

0.03 Sunday, Feb. 17th, 2013
 - added a `deferred` helper function to Promises.pm
 - fixed the reject call in `when` (thanks to rafl for this) - added tests
   for this
 - large doc reworking - moved things into a cookbook - added example of
   usage with Mojo::IOLoop - added comparison with Scala futures - this
   still needs some work, but the basics are ther

0.02 Saturday, Nov. 24th, 2012
 - add several predicate methods to help when interrogating status, this
   resolves RT #81278. - thanks to Toby Inkster for this
 - fixed error chaining so that the result of an error in one step of the
   chain will be passed onto the next step as well, this resolves RT
   #81358. - thanks to TOSHIOITO for this
 - made error callbacks optional and ensured that the errors will bubble to
   the next promise in the chain, this resolves RT #81356. - thanks again
   to TOSHIOITO for this

0.01 Friday, Nov. 16th, 2012
 - First release to an unsuspecting world

0.95_TRIAL 2017-08-19
 [BUG FIXES]
 - fix case where exception exists but is false. (GH#48, stuckdownawell)

 [DOCUMENTATION]
 - doc fix from Amelia Ireland (RT#107559)
 - fix typos in docs (GH#43, yanick)
 - POD fixes. (GH#39, hatorikibble)
 - fix Mojo example (GH#41, InfinityGone)

 [ENHANCEMENTS]
 - add support for IO::Async. (GH#62)
 - add Mojo::UserAgent example (GH#56, powerman)
 - add $WARN_ON_UNHANDLED_REJECT. (GH#37, ruz)
 - add `is_done` predicate. (GH#45, yanick)
 - add `chain` method. (GH#47, yanick)
 - add methods `resolved`, `rejected` and `deferred` now accept a coderef.
   (GH#50, yanick)
 - allows non-promises in 'collect'. (GH#53, yanick)

 [MISC]
 - skip tests if AnyEvent is not installed (GH#42, yanick)
 - add a META.json (GH#40, hatorikibble)
 - README.md improvement. (GH#51, Andy Kogut + yanick)