File: CHANGELOG.md

package info (click to toggle)
ruby-retriable 3.2.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 244 kB
  • sloc: ruby: 511; sh: 4; makefile: 3
file content (144 lines) | stat: -rw-r--r-- 5,133 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# HEAD

## 3.2.1
- Remove executables from gemspec as it was poluting the path for some users. Thanks @hsbt.

## 3.2.0

- Require ruby 2.3+.
- Fix: Ensure `tries` value is overridden by `intervals` parameter if both are provided and add a test for this. This is always what the README stated but the code didn't actually do it.
- Fix: Some rubocop offenses.

## 3.1.2

- Replace `minitest` gem with `rspec`
- Fancier README
- Remove unnecessary short circuit in `randomize` method

## 3.1.1

- Fix typo in contexts exception message.
- Fix updating the version in the library.

## 3.1.0

- Added [contexts feature](https://github.com/kamui/retriable#contexts). Thanks to @apurvis.

## 3.0.2

- Add configuration and options validation.

## 3.0.1

- Add `rubocop` linter to enforce coding styles for this library. Also, fix rule violations.
- Removed `attr_reader :config` that caused a warning. @bruno-
- Clean up Rakefile testing cruft. @bruno-
- Use `.any?` in the `:on` hash processing. @apurvis

## 3.0.0

- Require ruby 2.0+.
- Breaking Change: `on` with a `Hash` value now matches subclassed exceptions. Thanks @apurvis!
- Remove `awesome_print` from development environment.

## 2.1.0

- Fix bug #17 due to confusing the initial try as a retry.
- Switch to `Minitest` 5.6 expect syntax.

## 2.0.2

- Change required_ruby_version in gemspec to >= 1.9.3.

## 2.0.1

- Add support for ruby 1.9.3.

## 2.0.0

- Require ruby 2.0+.
- Time intervals default to randomized exponential backoff instead of fixed time intervals. The delay between retries grows with every attempt and there's a randomization factor added to each attempt.
- `base_interval`, `max_interval`, `rand_factor`, and `multiplier` are new arguments that are used to generate randomized exponential back off time intervals.
- `interval` argument removed.
- Accept `intervals` array argument to provide your own custom intervals.
- Allow configurable defaults via `Retriable#configure` block.
- Add ability for `:on` argument to accept a `Hash` where the keys are exception types and the values are a single or array of `Regexp` pattern(s) to match against exception messages for retrial.
- Raise, not return, on max elapsed time.
- Check for elapsed time after next interval is calculated and it goes over the max elapsed time.
- Support early termination via `max_elapsed_time` argument.

## 2.0.0.beta5

- Change `:max_tries` back to `:tries`.

## 2.0.0.beta4

- Change #retry back to #retriable. Didn't like the idea of defining a method that is also a reserved word.
- Add ability for `:on` argument to accept a `Hash` where the keys are exception types and the values are a single or array of `Regexp` pattern(s) to match against exception messages for retrial.

## 2.0.0.beta3

- Accept `intervals` array argument to provide your own custom intervals.
- Refactor the exponential backoff code into it's own class.
- Add specs for exponential backoff, randomization, and config.

## 2.0.0.beta2

- Raise, not return, on max elapsed time.
- Check for elapsed time after next interval is calculated and it goes over the max elapsed time.
- Add specs for `max_elapsed_time` and `max_interval`.

## 2.0.0.beta1

- Require ruby 2.0+.
- Default to random exponential backoff, removes the `interval` option. Exponential backoff is configurable via arguments.
- Allow configurable defaults via `Retriable#configure` block.
- Change `Retriable.retriable` to `Retriable.retry`.
- Support early termination via `max_elapsed_time` argument.

## 1.4.1

- Fixes non kernel mode bug. Remove DSL class, move `#retriable` into Retriable module. Thanks @mkrogemann.

## 1.4.0

- By default, retriable doesn't monkey patch `Kernel`. If you want this functionality,
  you can `require 'retriable/core_ext/kernel'.
- Upgrade minitest to 5.x.
- Refactor the DSL into it's own class.

## 1.3.3.1

- Allow sleep parameter to be a proc/lambda to allow for exponential backoff.

## 1.3.3

- sleep after executing the retry block, so there's no wait on the first call (molfar)

## 1.3.2

- Clean up option defaults.
- By default, rescue StandardError and Timeout::Error instead of [Exception](http://www.mikeperham.com/2012/03/03/the-perils-of-rescue-exception).

## 1.3.1

- Add `rake` dependency for travis-ci.
- Update gemspec summary and description.

## 1.3.0

- Rewrote a lot of the code with inspiration from [attempt](https://rubygems.org/gems/attempt).
- Add timeout option to the code block.
- Include in Kernel by default, but allow require 'retriable/no_kernel' to load a non kernel version.
- Renamed `:times` option to `:tries`.
- Renamed `:sleep` option to `:interval`.
- Renamed `:then` option to `:on_retry`.
- Removed other callbacks, you can wrap retriable in a begin/rescue/else/ensure block if you need that functionality. It avoids the need to define multiple Procs and makes the code more readable.
- Rewrote most of the README

## 1.2.0

- Forked the retryable-rb repo.
- Extend the Kernel module with the retriable method so you can use it anywhere without having to include it in every class.
- Update gemspec, Gemfile, and Raketask.
- Remove echoe dependency.