bluepill 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +820 -0
- data/CONTRIBUTING.md +31 -0
- data/LICENSE +1 -1
- data/README.md +64 -29
- data/bin/bluepill +1 -1
- data/bluepill.gemspec +17 -6
- data/lib/bluepill/application.rb +309 -41
- data/lib/bluepill/condition_watch.rb +103 -8
- data/lib/bluepill/controller.rb +124 -13
- data/lib/bluepill/dsl/app_proxy.rb +102 -3
- data/lib/bluepill/dsl/process_factory.rb +183 -60
- data/lib/bluepill/dsl/process_proxy.rb +132 -14
- data/lib/bluepill/dsl.rb +27 -5
- data/lib/bluepill/group.rb +142 -9
- data/lib/bluepill/logger.rb +120 -5
- data/lib/bluepill/process.rb +571 -200
- data/lib/bluepill/process_commands.rb +262 -0
- data/lib/bluepill/process_conditions/always_true.rb +18 -4
- data/lib/bluepill/process_conditions/cpu_usage.rb +34 -0
- data/lib/bluepill/process_conditions/file_time.rb +40 -4
- data/lib/bluepill/process_conditions/http.rb +81 -23
- data/lib/bluepill/process_conditions/mem_usage.rb +61 -2
- data/lib/bluepill/process_conditions/process_condition.rb +43 -0
- data/lib/bluepill/process_conditions/running_time.rb +36 -1
- data/lib/bluepill/process_conditions/zombie_process.rb +26 -5
- data/lib/bluepill/process_conditions.rb +15 -1
- data/lib/bluepill/process_journal.rb +256 -104
- data/lib/bluepill/process_statistics.rb +33 -3
- data/lib/bluepill/socket.rb +63 -16
- data/lib/bluepill/system/commands.rb +286 -0
- data/lib/bluepill/system.rb +192 -228
- data/lib/bluepill/trigger.rb +110 -14
- data/lib/bluepill/triggers/flapping.rb +84 -3
- data/lib/bluepill/util/rotational_array.rb +24 -1
- data/lib/bluepill/version.rb +71 -19
- data/lib/bluepill.rb +25 -2
- data/sig/bluepill.rbs +926 -0
- data/sig/manifest.yaml +7 -0
- metadata +16 -34
- data/bin/sample_forking_server +0 -66
- data/lib/bluepill/application/client.rb +0 -6
- data/lib/bluepill/application/server.rb +0 -21
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,820 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/2.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.1.4] - 2026-11-01
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- `bluepill load` warns about a process that sets none of `daemonize`, `pid_file` or `pid_command`, since bluepill can't find its pid ([#54](https://github.com/bluepill-rb/bluepill/issues/54)).
|
|
15
|
+
- Documented `pre_start_command`, and that commands don't run in a shell.
|
|
16
|
+
- Gem metadata links to the source code, changelog and issue tracker ([#56](https://github.com/bluepill-rb/bluepill/issues/56)).
|
|
17
|
+
- RBS type signatures in `sig/bluepill.rbs`, checked with Steep in strict mode.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Allowed Active Support 6 and newer.
|
|
22
|
+
- When cleaning up a process journal, bluepill now sends `KILL` to every process still alive a second after `TERM`, including a single survivor. Before, it only sent `KILL` when more than one process survived, and then to every journaled pid.
|
|
23
|
+
- Process groups in the journal are now checked as whole groups, so a group whose leader exited but whose other members are still running gets killed too.
|
|
24
|
+
- With `stop_signals`, bluepill now waits for the process to exit, up to about `stop_grace_time`, after the last signal before force-killing it from the journal ([#31](https://github.com/bluepill-rb/bluepill/issues/31)).
|
|
25
|
+
- A restart without `restart_command` now waits for the whole `stop_signals` sequence to finish before starting the process again ([#31](https://github.com/bluepill-rb/bluepill/issues/31)).
|
|
26
|
+
- `start` now ends a stop sequence that is still running, so it can't signal or kill the newly started process ([#31](https://github.com/bluepill-rb/bluepill/issues/31)).
|
|
27
|
+
- `ps` now runs with the POSIX options `-Ao pid,ppid,pcpu,rss,etime,args` ([#13](https://github.com/bluepill-rb/bluepill/issues/13)).
|
|
28
|
+
- When `ps` can't run, the daemon logs a warning and skips that check until the next interval instead of exiting ([#37](https://github.com/bluepill-rb/bluepill/issues/37)).
|
|
29
|
+
- When bluepill can't open its log file or create its pids directory, it explains which user needs access and exits with status 5 instead of printing a backtrace ([#33](https://github.com/bluepill-rb/bluepill/issues/33)).
|
|
30
|
+
- An HTTP check with an unknown numeric `kind` now fails when the pill loads, like an unknown String or Symbol `kind` already did. Before, it raised on every tick and kept the process's other checks from running.
|
|
31
|
+
|
|
32
|
+
### Removed
|
|
33
|
+
|
|
34
|
+
- `Bluepill::Application::Client` and `Bluepill::Application::Server`, which raised `TypeError` when loaded and weren't used.
|
|
35
|
+
- The `sample_forking_server` executable. It was a test server for the examples, so it moved to `examples/` and is no longer installed with the gem.
|
|
36
|
+
|
|
37
|
+
### Fixed
|
|
38
|
+
|
|
39
|
+
- On Ruby 3.4 and newer, loading bluepill under Bundler raised `LoadError` unless the app's Gemfile included `syslog`, even when logging to a file. Bluepill now loads `syslog` only when it logs to syslog, and explains how to fix a missing `syslog` gem.
|
|
40
|
+
- The HTTP condition with a numeric `kind`, and `stop_signals` with delays, crashed on Ruby 3.2 and newer, where `Fixnum` no longer exists.
|
|
41
|
+
- Two processes could hold the journal lock at the same time, the lock never timed out, and a waiting process could remove a lock held by another.
|
|
42
|
+
- A `nil` pid crashed the process journal, and a pid of 0 made bluepill journal its own process group.
|
|
43
|
+
- A pid file that was empty or held 0 made the process show as `up` forever, since signaling pid 0 reaches bluepill's own process group ([#53](https://github.com/bluepill-rb/bluepill/issues/53)).
|
|
44
|
+
- Checking a process that had no pid yet, such as before its first start, logged a "Failed to signal process" error.
|
|
45
|
+
- Commands sent to a process whose name contains a colon raised `ArgumentError` ([#24](https://github.com/bluepill-rb/bluepill/issues/24)).
|
|
46
|
+
- `stop` or `restart` on a starting process with `monitor_children` raised `SystemStackError` ([#8](https://github.com/bluepill-rb/bluepill/issues/8)).
|
|
47
|
+
- A start, stop or restart command that outlived its grace time left a zombie process behind ([#23](https://github.com/bluepill-rb/bluepill/issues/23)).
|
|
48
|
+
- `ps` failed on SmartOS and Solaris ([#13](https://github.com/bluepill-rb/bluepill/issues/13)).
|
|
49
|
+
- Starting a second daemon for an app that was already running raised `NameError` instead of printing an error and exiting.
|
|
50
|
+
- Event timestamps in `bluepill status` showed the hour where they meant the minutes.
|
|
51
|
+
- The `file_time` check crashed when the file couldn't be read.
|
|
52
|
+
- The command listener stopped answering after `accept` failed once.
|
|
53
|
+
- Several watches could run `ps` at the same time on the same tick.
|
|
54
|
+
- Each reset of a trigger left its canceled events in memory.
|
|
55
|
+
- A start, stop or restart command killed by a signal could crash the daemon, since the command has no exit code.
|
|
56
|
+
- The `running_time` check could crash the daemon when `ps` didn't list the process.
|
|
57
|
+
- The HTTP check's workaround for a Net::HTTP connection error never matched on Ruby 3.4 and newer, which changed the error message.
|
|
58
|
+
- An empty or garbled application pid file made bluepill send `SIGINT` to its own process group on startup.
|
|
59
|
+
- `bluepill quit` with an empty or garbled daemon pid file sent `TERM` to the process group of the `bluepill` command itself.
|
|
60
|
+
- Loading a config rejected two different processes as duplicates when joining group and process name with `:` gave the same string, such as process `b:c` in group `a` and process `c` in group `a:b`.
|
|
61
|
+
- Child processes of a process that didn't set its grace times got no start, stop or restart grace time, instead of the default of 3 seconds.
|
|
62
|
+
|
|
63
|
+
## [0.1.3] - 2017-04-06
|
|
64
|
+
|
|
65
|
+
### Changed
|
|
66
|
+
|
|
67
|
+
- Allowed `activesupport` 5, so bluepill can be used with Rails 5 ([#46](https://github.com/bluepill-rb/bluepill/pull/46)).
|
|
68
|
+
- Documented that bluepill can only run in the foreground on JRuby.
|
|
69
|
+
|
|
70
|
+
## [0.1.2] - 2016-06-19
|
|
71
|
+
|
|
72
|
+
### Fixed
|
|
73
|
+
|
|
74
|
+
- Killed journaled pids and remove the pid file only after a long-running `stop_command` or `stop_signals` sequence has finished, instead of right away ([#32](https://github.com/bluepill-rb/bluepill/pull/32)).
|
|
75
|
+
- Fixed cleanup of stale pid and socket files for applications that are no longer running.
|
|
76
|
+
- Read command exit codes from `$?` instead of `$CHILD_STATUS`, which is only set when the `English` library is loaded ([#43](https://github.com/bluepill-rb/bluepill/pull/43)).
|
|
77
|
+
- Treated an invalid pid (such as `false`) as a process that is not running instead of raising an error.
|
|
78
|
+
|
|
79
|
+
## [0.1.1] - 2015-08-14
|
|
80
|
+
|
|
81
|
+
### Changed
|
|
82
|
+
|
|
83
|
+
- **Breaking:** Required Ruby 1.9.3 or later in the gemspec, so RubyGems no longer installs this release on Ruby 1.8.
|
|
84
|
+
- Updated the README and examples to use Ruby 1.9 hash syntax.
|
|
85
|
+
|
|
86
|
+
## [0.1.0] - 2015-08-14 [YANKED]
|
|
87
|
+
|
|
88
|
+
### Removed
|
|
89
|
+
|
|
90
|
+
- **Breaking:** Dropped Ruby 1.8 support. The code now uses Ruby 1.9 hash syntax, but the gemspec did not yet declare a minimum Ruby version.
|
|
91
|
+
|
|
92
|
+
## [0.0.70] - 2015-08-14
|
|
93
|
+
|
|
94
|
+
### Changed
|
|
95
|
+
|
|
96
|
+
- Raised the minimum `activesupport` version to 3.2.
|
|
97
|
+
- Relaxed the `blue-daemons` dependency to `~> 1.1`.
|
|
98
|
+
- `bluepill status` now lists every process, not just processes that monitor their children.
|
|
99
|
+
|
|
100
|
+
### Removed
|
|
101
|
+
|
|
102
|
+
- Removed the unused `i18n` runtime dependency.
|
|
103
|
+
|
|
104
|
+
### Fixed
|
|
105
|
+
|
|
106
|
+
- Only write child pids to the process journal for processes that bluepill daemonizes ([#26](https://github.com/bluepill-rb/bluepill/pull/26)).
|
|
107
|
+
- Fixed a `NoMethodError` (`undefined method 'actual_id'`) when restarting a process whose children are monitored ([#35](https://github.com/bluepill-rb/bluepill/pull/35)).
|
|
108
|
+
|
|
109
|
+
## [0.0.69] - 2014-11-02
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
|
|
113
|
+
- Logged a backtrace when a trigger or process condition raises an exception ([#18](https://github.com/bluepill-rb/bluepill/pull/18)).
|
|
114
|
+
|
|
115
|
+
### Fixed
|
|
116
|
+
|
|
117
|
+
- Required `active_support` before its core extensions to work around a Rails loading bug ([#19](https://github.com/bluepill-rb/bluepill/pull/19)).
|
|
118
|
+
|
|
119
|
+
## [0.0.68] - 2014-07-20
|
|
120
|
+
|
|
121
|
+
### Changed
|
|
122
|
+
|
|
123
|
+
- Allowed `activesupport` 4.1 and later 4.x releases, so bluepill can be used with Rails 4.1 ([#17](https://github.com/bluepill-rb/bluepill/pull/17)).
|
|
124
|
+
|
|
125
|
+
### Fixed
|
|
126
|
+
|
|
127
|
+
- The `mem_usage` check no longer raises an error when a process has no memory reading.
|
|
128
|
+
|
|
129
|
+
## [0.0.67] - 2014-05-01
|
|
130
|
+
|
|
131
|
+
### Added
|
|
132
|
+
|
|
133
|
+
- Added a `zombie_process` check that restarts defunct processes. It requires `cache_actual_pid` to be set to `false`.
|
|
134
|
+
|
|
135
|
+
### Changed
|
|
136
|
+
|
|
137
|
+
- Allowed `activesupport` 4.0, so bluepill can be used with Rails 4.0.
|
|
138
|
+
- Switched to the `blue-daemons` fork instead of the `daemons` gem.
|
|
139
|
+
|
|
140
|
+
### Fixed
|
|
141
|
+
|
|
142
|
+
- Reported exceptions raised in the grandchild process of a blocking command instead of losing them silently.
|
|
143
|
+
- Prevented the grandchild process from crashing while reporting an exception after its error pipe is closed ([#10](https://github.com/bluepill-rb/bluepill/pull/10)).
|
|
144
|
+
- Exited the intermediate daemonizing process with `Process.exit!` so it does not run exit handlers.
|
|
145
|
+
|
|
146
|
+
## [0.0.66] - 2013-07-19
|
|
147
|
+
|
|
148
|
+
### Fixed
|
|
149
|
+
|
|
150
|
+
- Fixed starting the bluepill daemon without privileges, which still failed in 0.0.62 because `Errno::EPERM` was not rescued correctly.
|
|
151
|
+
|
|
152
|
+
## [0.0.65] - 2013-07-12
|
|
153
|
+
|
|
154
|
+
### Changed
|
|
155
|
+
|
|
156
|
+
- Limited `activesupport` to 3.x, since `activesupport` 4 requires Ruby 1.9.3.
|
|
157
|
+
|
|
158
|
+
### Fixed
|
|
159
|
+
|
|
160
|
+
- `bluepill restart` now starts a process right after stopping it when no `restart_command` is set, instead of waiting for the next tick.
|
|
161
|
+
|
|
162
|
+
## [0.0.64] - 2013-05-29
|
|
163
|
+
|
|
164
|
+
### Added
|
|
165
|
+
|
|
166
|
+
- Added a `running_time` check that fires when a process has been running longer than a given time.
|
|
167
|
+
- Added the `BLUEPILL_BASE_DIR` environment variable to set the default base directory.
|
|
168
|
+
|
|
169
|
+
### Changed
|
|
170
|
+
|
|
171
|
+
- **Breaking:** The default base directory for unprivileged users is now `~/.bluepill` instead of `/var/run/bluepill`.
|
|
172
|
+
- Loosened the `state_machine` dependency to `~> 1.1`.
|
|
173
|
+
|
|
174
|
+
### Fixed
|
|
175
|
+
|
|
176
|
+
- Fixed an error when daemonizing a process fails.
|
|
177
|
+
- Fixed the load path of the `local-bluepill` script.
|
|
178
|
+
- Exited the child process of a blocking command with `Process.exit!` so it does not leave zombie processes behind.
|
|
179
|
+
|
|
180
|
+
## [0.0.63] - 2013-04-21
|
|
181
|
+
|
|
182
|
+
### Added
|
|
183
|
+
|
|
184
|
+
- Added a `file_time` check that fires when a file, such as a log file, has not been modified recently.
|
|
185
|
+
- Added the `group_start_noblock`, `group_stop_noblock`, `group_restart_noblock` and `group_unmonitor_noblock` process options. Set them to `false` to run group commands one process at a time instead of in parallel.
|
|
186
|
+
- Added the `on_start_timeout` process option to choose what happens when a start command takes longer than `start_grace_time`.
|
|
187
|
+
|
|
188
|
+
### Changed
|
|
189
|
+
|
|
190
|
+
- A process whose start command times out is now started again by default instead of being unmonitored.
|
|
191
|
+
|
|
192
|
+
### Fixed
|
|
193
|
+
|
|
194
|
+
- The `http` check now sends the query string along with the path.
|
|
195
|
+
- Stopped retrying forever when deleting a file fails.
|
|
196
|
+
- Process journals are now stored in the base directory instead of the current working directory.
|
|
197
|
+
|
|
198
|
+
## [0.0.62] - 2013-03-19
|
|
199
|
+
|
|
200
|
+
### Fixed
|
|
201
|
+
|
|
202
|
+
- Fixed a crash when starting the bluepill daemon without privileges.
|
|
203
|
+
|
|
204
|
+
## [0.0.61] - 2013-03-18
|
|
205
|
+
|
|
206
|
+
### Added
|
|
207
|
+
|
|
208
|
+
- Added the `kill_timeout` application option to set how long bluepill waits for a previous bluepill daemon to exit. It defaults to 10.
|
|
209
|
+
- Added `pre_start_command`, a command that runs before each start of a process.
|
|
210
|
+
- Added the `include_children` option to `cpu_usage` and `mem_usage` checks to count the resources of child processes.
|
|
211
|
+
- Kept a journal of the pids and process groups that bluepill starts, and kill leftover processes from it when starting and stopping.
|
|
212
|
+
|
|
213
|
+
### Changed
|
|
214
|
+
|
|
215
|
+
- Allowed `daemons` 1.1.7 and later again.
|
|
216
|
+
- Documented the application name argument of the `bluepill` command.
|
|
217
|
+
|
|
218
|
+
### Fixed
|
|
219
|
+
|
|
220
|
+
- Accepted a `working_dir` that is not a string, such as a `Pathname`.
|
|
221
|
+
|
|
222
|
+
## [0.0.60] - 2012-03-05
|
|
223
|
+
|
|
224
|
+
### Fixed
|
|
225
|
+
|
|
226
|
+
- Fixed sending `stop_signals`, which are given as symbols and broke in 0.0.59.
|
|
227
|
+
|
|
228
|
+
## [0.0.59] - 2012-02-27
|
|
229
|
+
|
|
230
|
+
### Fixed
|
|
231
|
+
|
|
232
|
+
- Fixed sending numeric signals to a process, and log an error when sending a signal fails instead of failing silently.
|
|
233
|
+
|
|
234
|
+
## [0.0.58] - 2012-02-20
|
|
235
|
+
|
|
236
|
+
### Removed
|
|
237
|
+
|
|
238
|
+
- Removed the workaround for `daemons` 1.1.7 and later, which are still excluded by the gemspec.
|
|
239
|
+
|
|
240
|
+
## [0.0.57] - 2012-02-20
|
|
241
|
+
|
|
242
|
+
### Fixed
|
|
243
|
+
|
|
244
|
+
- Only set `close_on_exec` on socket connections when the Ruby version supports it.
|
|
245
|
+
|
|
246
|
+
## [0.0.56] - 2012-02-18
|
|
247
|
+
|
|
248
|
+
### Changed
|
|
249
|
+
|
|
250
|
+
- Restricted the `daemons` dependency to 1.1.6 or earlier again.
|
|
251
|
+
|
|
252
|
+
### Fixed
|
|
253
|
+
|
|
254
|
+
- Fixed sending signals on Ruby 1.8.7, where symbols do not respond to `upcase`.
|
|
255
|
+
|
|
256
|
+
## [0.0.55] - 2012-02-07
|
|
257
|
+
|
|
258
|
+
### Changed
|
|
259
|
+
|
|
260
|
+
- Supported `daemons` 1.1.7 and later.
|
|
261
|
+
|
|
262
|
+
## [0.0.54] - 2012-02-07
|
|
263
|
+
|
|
264
|
+
### Changed
|
|
265
|
+
|
|
266
|
+
- Restricted the `daemons` dependency to versions 1.1.4 through 1.1.6.
|
|
267
|
+
|
|
268
|
+
## [0.0.53] - 2012-02-03
|
|
269
|
+
|
|
270
|
+
### Fixed
|
|
271
|
+
|
|
272
|
+
- Set up Bundler when bluepill runs under `bundle exec`, to avoid gem conflicts.
|
|
273
|
+
- Closed socket connections when a command execs, so a long-running command no longer makes the client time out.
|
|
274
|
+
|
|
275
|
+
## [0.0.52] - 2011-12-13
|
|
276
|
+
|
|
277
|
+
### Added
|
|
278
|
+
|
|
279
|
+
- Added the `supplementary_groups` process option.
|
|
280
|
+
- Added the `stop_signals` process option to send a sequence of signals with delays when stopping a process.
|
|
281
|
+
- The client now retries up to 5 times when the server does not respond.
|
|
282
|
+
|
|
283
|
+
### Changed
|
|
284
|
+
|
|
285
|
+
- **Breaking:** The default base directory is now `/var/run/bluepill` instead of `/var/bluepill`.
|
|
286
|
+
- Set the `HOME` environment variable to the home directory of the configured `uid`.
|
|
287
|
+
- Required `state_machine` 1.1 instead of 0.9.
|
|
288
|
+
|
|
289
|
+
### Fixed
|
|
290
|
+
|
|
291
|
+
- Fixed a `Config` deprecation warning on Ruby 1.9.3.
|
|
292
|
+
- Fixed `bluepill status` not returning output.
|
|
293
|
+
- Fixed an error when `supplementary_groups` is not set.
|
|
294
|
+
|
|
295
|
+
## [0.0.51] - 2011-06-01
|
|
296
|
+
|
|
297
|
+
### Fixed
|
|
298
|
+
|
|
299
|
+
- Fixed `bluepill status <process>`, which failed while printing the process's event history since 0.0.47.
|
|
300
|
+
|
|
301
|
+
## [0.0.50] - 2011-06-01
|
|
302
|
+
|
|
303
|
+
### Added
|
|
304
|
+
|
|
305
|
+
- Added the `pid_command` process option to get a process's pid from the output of a command instead of a pid file.
|
|
306
|
+
- Added the `auto_start` option. Set it to `false` so that processes which aren't running when bluepill loads start out unmonitored instead of being started.
|
|
307
|
+
- Added a simpler DSL: `Bluepill.application` and `app.process` blocks that take no argument are evaluated in the proxy's context, and attributes can be set with `working_dir "/path"` or `daemonize!` instead of `process.working_dir = "/path"`. The block-argument style still works.
|
|
308
|
+
|
|
309
|
+
## [0.0.49] - 2011-05-14
|
|
310
|
+
|
|
311
|
+
### Added
|
|
312
|
+
|
|
313
|
+
- Added the `cache_actual_pid` process option (default `true`). Set it to `false` to reread the pid file on every check.
|
|
314
|
+
|
|
315
|
+
### Fixed
|
|
316
|
+
|
|
317
|
+
- Fixed loading the `state_machine` gem on systems that also have the `rubyist-aasm` gem installed.
|
|
318
|
+
|
|
319
|
+
## [0.0.48] - 2011-04-07
|
|
320
|
+
|
|
321
|
+
### Changed
|
|
322
|
+
|
|
323
|
+
- **Breaking:** Bluepill now requires ActiveSupport 3.0 or later and `state_machine` 0.9.4 or later in the 0.9 series.
|
|
324
|
+
|
|
325
|
+
### Removed
|
|
326
|
+
|
|
327
|
+
- Removed the dependency on `blankslate`.
|
|
328
|
+
|
|
329
|
+
### Fixed
|
|
330
|
+
|
|
331
|
+
- Fixed a crash when a command run by bluepill (such as a stop or restart command) returned no status output.
|
|
332
|
+
|
|
333
|
+
## [0.0.47] - 2011-04-05
|
|
334
|
+
|
|
335
|
+
### Changed
|
|
336
|
+
|
|
337
|
+
- Raised the timeout for commands sent to the bluepill daemon from 10 to 60 seconds, so busy daemons have time to respond.
|
|
338
|
+
- **Breaking:** Tightened the gem dependencies to `daemons ~> 1.1.0`, `activesupport ~> 2.3.4`, `blankslate ~> 2.1.2.3` and `i18n ~> 0.5.0`, which rules out ActiveSupport 3.
|
|
339
|
+
|
|
340
|
+
## [0.0.46] - 2011-03-25
|
|
341
|
+
|
|
342
|
+
### Added
|
|
343
|
+
|
|
344
|
+
- Added `i18n` as a dependency, since newer ActiveSupport versions need it but don't declare it.
|
|
345
|
+
|
|
346
|
+
## [0.0.45] - 2011-03-24
|
|
347
|
+
|
|
348
|
+
### Added
|
|
349
|
+
|
|
350
|
+
- Added HTTPS support to the `:http` check. Certificates are not verified.
|
|
351
|
+
- Added the ability to turn off restarting after flapping by setting the flapping trigger's `retry_in` to `0`.
|
|
352
|
+
- Added a `-t`/`--timeout` option to the `bluepill` command, although it doesn't affect the command timeout yet.
|
|
353
|
+
|
|
354
|
+
### Fixed
|
|
355
|
+
|
|
356
|
+
- Fixed a race condition that made the flapping trigger unreliable, and removed its misleading "Retrying from flapping" log message.
|
|
357
|
+
- Fixed orphaned processes caused by start commands being run through `sh -c`. Commands are now split into words and executed directly.
|
|
358
|
+
- Fixed an `ArgumentError` from the signal handlers on Ruby 1.9.2.
|
|
359
|
+
- Fixed triggers on monitored child processes on Ruby 1.9.
|
|
360
|
+
- Fixed a race condition when deleting a process's pid file that another process had already removed.
|
|
361
|
+
- Fixed process monitoring on FreeBSD by changing the `ps` invocation.
|
|
362
|
+
|
|
363
|
+
## [0.0.44] - 2010-10-19
|
|
364
|
+
|
|
365
|
+
### Changed
|
|
366
|
+
|
|
367
|
+
- `bluepill` now exits with status 1 when given an unknown command.
|
|
368
|
+
|
|
369
|
+
### Fixed
|
|
370
|
+
|
|
371
|
+
- Fixed monitoring child processes on Ruby 1.9, which failed because a mutex could not be marshaled.
|
|
372
|
+
|
|
373
|
+
## [0.0.43] - 2010-09-19
|
|
374
|
+
|
|
375
|
+
### Fixed
|
|
376
|
+
|
|
377
|
+
- Restored Ruby 1.8.6 compatibility, which 0.0.39 had broken by using `Object#tap`.
|
|
378
|
+
- Fixed monitoring child processes on Ruby 1.9, which lacks `Array#nitems`.
|
|
379
|
+
|
|
380
|
+
## [0.0.42] - 2010-08-24
|
|
381
|
+
|
|
382
|
+
### Added
|
|
383
|
+
|
|
384
|
+
- Environment variable names and values set with `environment` can now be symbols or other non-string objects.
|
|
385
|
+
|
|
386
|
+
### Fixed
|
|
387
|
+
|
|
388
|
+
- Fixed loading configuration files on Ruby 1.9.2.
|
|
389
|
+
- Fixed the `bluepill` command's help output on Ruby 1.9.
|
|
390
|
+
|
|
391
|
+
## [0.0.40] - 2010-08-21
|
|
392
|
+
|
|
393
|
+
### Added
|
|
394
|
+
|
|
395
|
+
- Added the `--no-privileged` option so `bluepill` can run as a non-root user. Bluepill then skips switching `uid` and `gid` for its processes.
|
|
396
|
+
|
|
397
|
+
### Fixed
|
|
398
|
+
|
|
399
|
+
- Fixed a spurious error at startup when the pid file of a previous bluepill daemon pointed to a process that was no longer running.
|
|
400
|
+
|
|
401
|
+
## [0.0.39] - 2010-08-02
|
|
402
|
+
|
|
403
|
+
### Added
|
|
404
|
+
|
|
405
|
+
- Added the `environment` option, at the application or process level, to set environment variables for monitored processes.
|
|
406
|
+
- Added the `:http` check, which requests a URL and checks the response status and, optionally, its body against a pattern.
|
|
407
|
+
|
|
408
|
+
### Fixed
|
|
409
|
+
|
|
410
|
+
- Fixed compatibility with Rails 3 and ActiveSupport 3.0.
|
|
411
|
+
|
|
412
|
+
## [0.0.38] - 2010-05-31
|
|
413
|
+
|
|
414
|
+
### Fixed
|
|
415
|
+
|
|
416
|
+
- Fixed child processes still not inheriting their parent's grace times after the 0.0.37 change.
|
|
417
|
+
|
|
418
|
+
## [0.0.37] - 2010-03-15
|
|
419
|
+
|
|
420
|
+
### Added
|
|
421
|
+
|
|
422
|
+
- Added the `:foreground => true` option to `Bluepill.application` to run bluepill in the foreground without daemonizing and log to stdout, for use under runit or similar supervisors.
|
|
423
|
+
|
|
424
|
+
### Fixed
|
|
425
|
+
|
|
426
|
+
- Fixed child processes not inheriting the parent's grace times when they were set after `monitor_children`.
|
|
427
|
+
|
|
428
|
+
## [0.0.36] - 2010-02-28
|
|
429
|
+
|
|
430
|
+
### Fixed
|
|
431
|
+
|
|
432
|
+
- Fixed an error when closing a client connection that had already been closed.
|
|
433
|
+
|
|
434
|
+
## [0.0.35] - 2010-02-28
|
|
435
|
+
|
|
436
|
+
### Fixed
|
|
437
|
+
|
|
438
|
+
- Fixed a second bluepill daemon starting for an application whose daemon was already running. It now exits with an error.
|
|
439
|
+
|
|
440
|
+
## [0.0.34] - 2010-02-28
|
|
441
|
+
|
|
442
|
+
### Fixed
|
|
443
|
+
|
|
444
|
+
- Fixed an error in the daemon when a client disconnected before its connection was closed.
|
|
445
|
+
|
|
446
|
+
## [0.0.33] - 2010-02-11
|
|
447
|
+
|
|
448
|
+
### Added
|
|
449
|
+
|
|
450
|
+
- Added support for calling `bluepill` through a symlink named after an application, like runit and daemontools.
|
|
451
|
+
|
|
452
|
+
### Fixed
|
|
453
|
+
|
|
454
|
+
- Fixed race conditions between commands sent to the daemon and the monitoring loop by handling commands one at a time under a lock.
|
|
455
|
+
|
|
456
|
+
## [0.0.32] - 2010-01-31
|
|
457
|
+
|
|
458
|
+
No user-facing changes.
|
|
459
|
+
|
|
460
|
+
## [0.0.31] - 2010-01-15
|
|
461
|
+
|
|
462
|
+
### Changed
|
|
463
|
+
|
|
464
|
+
- Errors raised while the daemon runs a command are now sent back and printed by the client, which exits with status 8.
|
|
465
|
+
|
|
466
|
+
## [0.0.30] - 2009-12-28
|
|
467
|
+
|
|
468
|
+
### Added
|
|
469
|
+
|
|
470
|
+
- Added `Bluepill.define_process_condition` to define a custom process condition from a block.
|
|
471
|
+
- Added process statistics, so `bluepill status` with a target shows more detail such as the process's recent event history.
|
|
472
|
+
|
|
473
|
+
## [0.0.28] - 2009-12-27
|
|
474
|
+
|
|
475
|
+
### Added
|
|
476
|
+
|
|
477
|
+
- Added the `bpsv` service control script, which runs `bluepill <command> <name>` using the name it is invoked under (for example through a symlink).
|
|
478
|
+
|
|
479
|
+
## [0.0.27] - 2009-12-06
|
|
480
|
+
|
|
481
|
+
### Changed
|
|
482
|
+
|
|
483
|
+
- `start`, `stop`, `restart` and `unmonitor` no longer require a target and apply to all processes when none is given.
|
|
484
|
+
- The CLI now checks that the running daemon is the same bluepill version and aborts with an error if it is out of date.
|
|
485
|
+
|
|
486
|
+
## [0.0.26] - 2009-12-03
|
|
487
|
+
|
|
488
|
+
### Changed
|
|
489
|
+
|
|
490
|
+
- The CLI now prints an error when `start`, `stop`, `restart` or `unmonitor` is run without a target.
|
|
491
|
+
|
|
492
|
+
## [0.0.25] - 2009-11-30
|
|
493
|
+
|
|
494
|
+
### Added
|
|
495
|
+
|
|
496
|
+
- Commands can now target a process by `group:process`, by process name alone, or by group name.
|
|
497
|
+
- The CLI now reports which processes were affected by a command.
|
|
498
|
+
- The config now fails with an error when two processes share a pid file or when a process name is repeated within a group.
|
|
499
|
+
|
|
500
|
+
### Changed
|
|
501
|
+
|
|
502
|
+
- `pid_file` is no longer required for a monitored process and defaults to a file in a per-application subdirectory of the bluepill pids directory.
|
|
503
|
+
- `bluepill load` now runs the config file in a fresh Ruby interpreter so that whatever the config loads does not stay in the daemon's memory.
|
|
504
|
+
- `bluepill log` now tails the application's configured log file instead of always using the CLI default.
|
|
505
|
+
- Redirected `stdout` and `stderr` files are now opened in append mode instead of being truncated.
|
|
506
|
+
|
|
507
|
+
### Fixed
|
|
508
|
+
|
|
509
|
+
- Fixed a crash when `bluepill load` was given a file that does not exist.
|
|
510
|
+
- Fixed processes in groups whose names were given as symbols not being handled correctly.
|
|
511
|
+
- Fixed the `times` option of a condition watch being passed through to the process condition.
|
|
512
|
+
|
|
513
|
+
## [0.0.24] - 2009-11-24
|
|
514
|
+
|
|
515
|
+
### Added
|
|
516
|
+
|
|
517
|
+
- Watch values can now be formatted for display, and the memory usage watch shows values in KB or MB.
|
|
518
|
+
|
|
519
|
+
### Changed
|
|
520
|
+
|
|
521
|
+
- Running `bluepill` with no arguments now prints the help.
|
|
522
|
+
|
|
523
|
+
### Fixed
|
|
524
|
+
|
|
525
|
+
- An empty pid file is now treated as having no pid.
|
|
526
|
+
- Fixed an exception raised when a state transition was halted by a `before_transition` callback.
|
|
527
|
+
|
|
528
|
+
## [0.0.23] - 2009-11-23
|
|
529
|
+
|
|
530
|
+
### Added
|
|
531
|
+
|
|
532
|
+
- Added the `-v`/`--version` option to print the bluepill version.
|
|
533
|
+
|
|
534
|
+
## [0.0.22] - 2009-11-23
|
|
535
|
+
|
|
536
|
+
### Added
|
|
537
|
+
|
|
538
|
+
- Added the `:log_file` application option to log to a file instead of syslog.
|
|
539
|
+
- Added the `-h`/`--help` option with usage information.
|
|
540
|
+
- Added app-wide `working_dir`, `uid` and `gid` settings that apply to every process that doesn't set its own.
|
|
541
|
+
- Added config validation that rejects duplicate process names and child process monitors without a `stop_command`.
|
|
542
|
+
- Documented the config options, logging, and working directory in the README and added a license file.
|
|
543
|
+
|
|
544
|
+
### Changed
|
|
545
|
+
|
|
546
|
+
- `bluepill` now prints an error and exits when the daemon fails to start instead of only logging the exception.
|
|
547
|
+
|
|
548
|
+
### Fixed
|
|
549
|
+
|
|
550
|
+
- The daemon's pid file and socket file are now removed when bluepill quits.
|
|
551
|
+
|
|
552
|
+
## [0.0.21] - 2009-11-16
|
|
553
|
+
|
|
554
|
+
### Added
|
|
555
|
+
|
|
556
|
+
- Added the `stdin`, `stdout` and `stderr` process options to redirect a daemonized process's streams.
|
|
557
|
+
|
|
558
|
+
### Removed
|
|
559
|
+
|
|
560
|
+
- **Breaking:** Removed support for shell output redirection in `start_command` because it was racy. Use the new `stdout` and `stderr` options instead.
|
|
561
|
+
|
|
562
|
+
## [0.0.20] - 2009-11-16
|
|
563
|
+
|
|
564
|
+
### Changed
|
|
565
|
+
|
|
566
|
+
- Running `start_command`, `stop_command` and `restart_command` now times out after the matching grace time so a hanging command can't block bluepill.
|
|
567
|
+
- Pid files for daemonized processes are now written by the spawned child so they are no longer always owned by the superuser.
|
|
568
|
+
|
|
569
|
+
### Fixed
|
|
570
|
+
|
|
571
|
+
- Bluepill now monitors the correct process when a daemonized `start_command` uses output redirection or environment variable assignments.
|
|
572
|
+
- Fixed bluepill refusing to start even when run as the superuser.
|
|
573
|
+
|
|
574
|
+
## [0.0.19] - 2009-11-13
|
|
575
|
+
|
|
576
|
+
### Changed
|
|
577
|
+
|
|
578
|
+
- The CLI now exits with distinct non-zero exit codes on errors.
|
|
579
|
+
- The base directory now defaults to `/var/bluepill`, and bluepill exits with an error if it can't write to it.
|
|
580
|
+
- When loading a config, bluepill now waits for a previous daemon to die and exits with an error if it doesn't.
|
|
581
|
+
|
|
582
|
+
## [0.0.18] - 2009-11-07
|
|
583
|
+
|
|
584
|
+
### Changed
|
|
585
|
+
|
|
586
|
+
- When several applications are running, the CLI now lists the running applications to choose from.
|
|
587
|
+
|
|
588
|
+
### Fixed
|
|
589
|
+
|
|
590
|
+
- Fixed the `log` command not picking the application automatically when only one is running.
|
|
591
|
+
- `bluepill load` now prints an error instead of crashing when the config file doesn't exist.
|
|
592
|
+
|
|
593
|
+
## [0.0.17] - 2009-11-07
|
|
594
|
+
|
|
595
|
+
### Fixed
|
|
596
|
+
|
|
597
|
+
- Fixed a variable scope error that broke commands sent to the daemon.
|
|
598
|
+
|
|
599
|
+
## [0.0.16] - 2009-11-07
|
|
600
|
+
|
|
601
|
+
### Fixed
|
|
602
|
+
|
|
603
|
+
- Fixed `bluepill load` failing because it was treated as a command for an already running daemon.
|
|
604
|
+
|
|
605
|
+
## [0.0.15] - 2009-11-06
|
|
606
|
+
|
|
607
|
+
### Added
|
|
608
|
+
|
|
609
|
+
- Added a timeout to the CLI's socket connection to the daemon.
|
|
610
|
+
|
|
611
|
+
### Changed
|
|
612
|
+
|
|
613
|
+
- Clarified some CLI error messages.
|
|
614
|
+
|
|
615
|
+
## [0.0.14] - 2009-11-06
|
|
616
|
+
|
|
617
|
+
### Added
|
|
618
|
+
|
|
619
|
+
- The CLI now prints an error listing the running applications when an application name is needed, and an error when no bluepill daemons are running.
|
|
620
|
+
|
|
621
|
+
### Fixed
|
|
622
|
+
|
|
623
|
+
- Stale socket files from daemons that are no longer running are now cleaned up.
|
|
624
|
+
|
|
625
|
+
## [0.0.13] - 2009-11-06
|
|
626
|
+
|
|
627
|
+
### Fixed
|
|
628
|
+
|
|
629
|
+
- Set the `PWD` environment variable when changing to a process's `working_dir`, to match shell behavior with symlinks.
|
|
630
|
+
|
|
631
|
+
## [0.0.12] - 2009-11-05
|
|
632
|
+
|
|
633
|
+
### Added
|
|
634
|
+
|
|
635
|
+
- Added the `working_dir` process option to set the directory a process starts in.
|
|
636
|
+
|
|
637
|
+
## [0.0.11] - 2009-11-04
|
|
638
|
+
|
|
639
|
+
### Changed
|
|
640
|
+
|
|
641
|
+
- Depended on the `state_machine` gem instead of `pluginaweek-state_machine` and added the missing `blankslate` dependency.
|
|
642
|
+
- Replaced the README with a basic usage guide and moved the bug list to GitHub issues.
|
|
643
|
+
|
|
644
|
+
## [0.0.10] - 2009-10-27
|
|
645
|
+
|
|
646
|
+
### Fixed
|
|
647
|
+
|
|
648
|
+
- The log message for `restart_command` now shows the command after `{{PID}}` substitution.
|
|
649
|
+
|
|
650
|
+
## [0.0.9] - 2009-10-27
|
|
651
|
+
|
|
652
|
+
No user-facing changes.
|
|
653
|
+
|
|
654
|
+
## [0.0.8] - 2009-10-27
|
|
655
|
+
|
|
656
|
+
### Added
|
|
657
|
+
|
|
658
|
+
- Added `{{PID}}` substitution to `restart_command`.
|
|
659
|
+
|
|
660
|
+
## [0.0.7] - 2009-10-24
|
|
661
|
+
|
|
662
|
+
### Added
|
|
663
|
+
|
|
664
|
+
- Self-daemonizing `start_command`s now run as the configured `uid` and `gid`.
|
|
665
|
+
|
|
666
|
+
## [0.0.6] - 2009-10-23
|
|
667
|
+
|
|
668
|
+
### Added
|
|
669
|
+
|
|
670
|
+
- Added monitoring of child processes with `monitor_children`.
|
|
671
|
+
|
|
672
|
+
### Changed
|
|
673
|
+
|
|
674
|
+
- Reworked the process state machine, adding the `starting`, `stopping` and `restarting` states.
|
|
675
|
+
|
|
676
|
+
### Fixed
|
|
677
|
+
|
|
678
|
+
- Fixed `start_grace_time`, `stop_grace_time` and `restart_grace_time` being ignored in favor of a hardcoded 3 seconds.
|
|
679
|
+
- Fixed global error handling catching `SystemExit`, which broke forking.
|
|
680
|
+
- Fixed a logger error in triggers.
|
|
681
|
+
|
|
682
|
+
## [0.0.5] - 2009-10-15
|
|
683
|
+
|
|
684
|
+
### Changed
|
|
685
|
+
|
|
686
|
+
- CPU and memory usage are now read from a single `ps axu` call per tick, which is more portable than reading `/proc`.
|
|
687
|
+
- Reduced log noise from `bluepill status`.
|
|
688
|
+
|
|
689
|
+
### Fixed
|
|
690
|
+
|
|
691
|
+
- Fixed deadlocks in triggers so flap detection and scheduled dispatches work.
|
|
692
|
+
|
|
693
|
+
## [0.0.4] - 2009-10-14
|
|
694
|
+
|
|
695
|
+
### Added
|
|
696
|
+
|
|
697
|
+
- Added ActiveSupport numeric and duration extensions so configs can use values like `5.minutes` and `3.megabytes`.
|
|
698
|
+
- `bluepill log` now prints a message when it starts tailing.
|
|
699
|
+
|
|
700
|
+
### Changed
|
|
701
|
+
|
|
702
|
+
- Required `activesupport` 2.3.4 or later.
|
|
703
|
+
|
|
704
|
+
## [0.0.3] - 2009-10-13
|
|
705
|
+
|
|
706
|
+
### Added
|
|
707
|
+
|
|
708
|
+
- Added the ability to run daemons as a different user.
|
|
709
|
+
- Added flap detection.
|
|
710
|
+
- Config attributes can now be read back in the DSL after they are set.
|
|
711
|
+
|
|
712
|
+
### Changed
|
|
713
|
+
|
|
714
|
+
- Loading a config now only waits for a previous bluepill daemon to die when one was actually running.
|
|
715
|
+
|
|
716
|
+
### Fixed
|
|
717
|
+
|
|
718
|
+
- Fixed bluepill forgetting a process's pid before the process had been started or killed.
|
|
719
|
+
|
|
720
|
+
## [0.0.2] - 2009-10-05
|
|
721
|
+
|
|
722
|
+
### Added
|
|
723
|
+
|
|
724
|
+
- Added the `quit` command.
|
|
725
|
+
|
|
726
|
+
### Changed
|
|
727
|
+
|
|
728
|
+
- Improved logging of watches and state transitions.
|
|
729
|
+
- Bluepill now creates its base directory structure on startup.
|
|
730
|
+
|
|
731
|
+
### Fixed
|
|
732
|
+
|
|
733
|
+
- Bluepill no longer claims to kill a process that is already dead.
|
|
734
|
+
|
|
735
|
+
## [0.0.1] - 2009-10-05
|
|
736
|
+
|
|
737
|
+
Initial release.
|
|
738
|
+
|
|
739
|
+
### Added
|
|
740
|
+
|
|
741
|
+
- Added a Ruby config DSL for defining an application with processes and groups.
|
|
742
|
+
- Added process monitoring with `start_command`, `stop_command`, `restart_command`, `pid_file`, daemonizing, and configurable grace times.
|
|
743
|
+
- Added CPU and memory usage conditions that trigger actions such as restarts.
|
|
744
|
+
- Added the `bluepill` CLI with the `load`, `status`, `start`, `stop`, `restart`, `unmonitor`, `quit` and `log` commands.
|
|
745
|
+
- Added syslog logging.
|
|
746
|
+
|
|
747
|
+
[unreleased]: https://github.com/bluepill-rb/bluepill/compare/v0.1.4...HEAD
|
|
748
|
+
[0.1.4]: https://github.com/bluepill-rb/bluepill/compare/v0.1.3...v0.1.4
|
|
749
|
+
[0.1.3]: https://github.com/bluepill-rb/bluepill/compare/v0.1.2...v0.1.3
|
|
750
|
+
[0.1.2]: https://github.com/bluepill-rb/bluepill/compare/v0.1.1...v0.1.2
|
|
751
|
+
[0.1.1]: https://github.com/bluepill-rb/bluepill/compare/v0.1.0...v0.1.1
|
|
752
|
+
[0.1.0]: https://github.com/bluepill-rb/bluepill/compare/v0.0.70...v0.1.0
|
|
753
|
+
[0.0.70]: https://github.com/bluepill-rb/bluepill/compare/v0.0.69...v0.0.70
|
|
754
|
+
[0.0.69]: https://github.com/bluepill-rb/bluepill/compare/v0.0.68...v0.0.69
|
|
755
|
+
[0.0.68]: https://github.com/bluepill-rb/bluepill/compare/v0.0.67...v0.0.68
|
|
756
|
+
[0.0.67]: https://github.com/bluepill-rb/bluepill/compare/v0.0.66...v0.0.67
|
|
757
|
+
[0.0.66]: https://github.com/bluepill-rb/bluepill/compare/v0.0.65...v0.0.66
|
|
758
|
+
[0.0.65]: https://github.com/bluepill-rb/bluepill/compare/v0.0.64...v0.0.65
|
|
759
|
+
[0.0.64]: https://github.com/bluepill-rb/bluepill/compare/v0.0.63...v0.0.64
|
|
760
|
+
[0.0.63]: https://github.com/bluepill-rb/bluepill/compare/v0.0.62...v0.0.63
|
|
761
|
+
[0.0.62]: https://github.com/bluepill-rb/bluepill/compare/v0.0.61...v0.0.62
|
|
762
|
+
[0.0.61]: https://github.com/bluepill-rb/bluepill/compare/v0.0.60...v0.0.61
|
|
763
|
+
[0.0.60]: https://github.com/bluepill-rb/bluepill/compare/v0.0.59...v0.0.60
|
|
764
|
+
[0.0.59]: https://github.com/bluepill-rb/bluepill/compare/v0.0.58...v0.0.59
|
|
765
|
+
[0.0.58]: https://github.com/bluepill-rb/bluepill/compare/v0.0.57...v0.0.58
|
|
766
|
+
[0.0.57]: https://github.com/bluepill-rb/bluepill/compare/v0.0.56...v0.0.57
|
|
767
|
+
[0.0.56]: https://github.com/bluepill-rb/bluepill/compare/v0.0.55...v0.0.56
|
|
768
|
+
[0.0.55]: https://github.com/bluepill-rb/bluepill/compare/v0.0.54...v0.0.55
|
|
769
|
+
[0.0.54]: https://github.com/bluepill-rb/bluepill/compare/v0.0.53...v0.0.54
|
|
770
|
+
[0.0.53]: https://github.com/bluepill-rb/bluepill/compare/v0.0.52...v0.0.53
|
|
771
|
+
[0.0.52]: https://github.com/bluepill-rb/bluepill/compare/v0.0.51...v0.0.52
|
|
772
|
+
[0.0.51]: https://github.com/bluepill-rb/bluepill/compare/v0.0.50...v0.0.51
|
|
773
|
+
[0.0.50]: https://github.com/bluepill-rb/bluepill/compare/v0.0.49...v0.0.50
|
|
774
|
+
[0.0.49]: https://github.com/bluepill-rb/bluepill/compare/v0.0.48...v0.0.49
|
|
775
|
+
[0.0.48]: https://github.com/bluepill-rb/bluepill/compare/v0.0.47...v0.0.48
|
|
776
|
+
[0.0.47]: https://github.com/bluepill-rb/bluepill/compare/v0.0.46...v0.0.47
|
|
777
|
+
[0.0.46]: https://github.com/bluepill-rb/bluepill/compare/v0.0.45...v0.0.46
|
|
778
|
+
[0.0.45]: https://github.com/bluepill-rb/bluepill/compare/v0.0.44...v0.0.45
|
|
779
|
+
[0.0.44]: https://github.com/bluepill-rb/bluepill/compare/v0.0.43...v0.0.44
|
|
780
|
+
[0.0.43]: https://github.com/bluepill-rb/bluepill/compare/v0.0.42...v0.0.43
|
|
781
|
+
[0.0.42]: https://github.com/bluepill-rb/bluepill/compare/v0.0.40...v0.0.42
|
|
782
|
+
[0.0.40]: https://github.com/bluepill-rb/bluepill/compare/v0.0.39...v0.0.40
|
|
783
|
+
[0.0.39]: https://github.com/bluepill-rb/bluepill/compare/v0.0.38...v0.0.39
|
|
784
|
+
[0.0.38]: https://github.com/bluepill-rb/bluepill/compare/v0.0.37...v0.0.38
|
|
785
|
+
[0.0.37]: https://github.com/bluepill-rb/bluepill/compare/v0.0.36...v0.0.37
|
|
786
|
+
[0.0.36]: https://github.com/bluepill-rb/bluepill/compare/v0.0.35...v0.0.36
|
|
787
|
+
[0.0.35]: https://github.com/bluepill-rb/bluepill/compare/v0.0.34...v0.0.35
|
|
788
|
+
[0.0.34]: https://github.com/bluepill-rb/bluepill/compare/v0.0.33...v0.0.34
|
|
789
|
+
[0.0.33]: https://github.com/bluepill-rb/bluepill/compare/v0.0.32...v0.0.33
|
|
790
|
+
[0.0.32]: https://github.com/bluepill-rb/bluepill/compare/v0.0.31...v0.0.32
|
|
791
|
+
[0.0.31]: https://github.com/bluepill-rb/bluepill/compare/v0.0.30...v0.0.31
|
|
792
|
+
[0.0.30]: https://github.com/bluepill-rb/bluepill/compare/v0.0.28...v0.0.30
|
|
793
|
+
[0.0.28]: https://github.com/bluepill-rb/bluepill/compare/v0.0.27...v0.0.28
|
|
794
|
+
[0.0.27]: https://github.com/bluepill-rb/bluepill/compare/v0.0.26...v0.0.27
|
|
795
|
+
[0.0.26]: https://github.com/bluepill-rb/bluepill/compare/v0.0.25...v0.0.26
|
|
796
|
+
[0.0.25]: https://github.com/bluepill-rb/bluepill/compare/v0.0.24...v0.0.25
|
|
797
|
+
[0.0.24]: https://github.com/bluepill-rb/bluepill/compare/v0.0.23...v0.0.24
|
|
798
|
+
[0.0.23]: https://github.com/bluepill-rb/bluepill/compare/v0.0.22...v0.0.23
|
|
799
|
+
[0.0.22]: https://github.com/bluepill-rb/bluepill/compare/v0.0.21...v0.0.22
|
|
800
|
+
[0.0.21]: https://github.com/bluepill-rb/bluepill/compare/v0.0.20...v0.0.21
|
|
801
|
+
[0.0.20]: https://github.com/bluepill-rb/bluepill/compare/v0.0.19...v0.0.20
|
|
802
|
+
[0.0.19]: https://github.com/bluepill-rb/bluepill/compare/v0.0.18...v0.0.19
|
|
803
|
+
[0.0.18]: https://github.com/bluepill-rb/bluepill/compare/v0.0.17...v0.0.18
|
|
804
|
+
[0.0.17]: https://github.com/bluepill-rb/bluepill/compare/v0.0.16...v0.0.17
|
|
805
|
+
[0.0.16]: https://github.com/bluepill-rb/bluepill/compare/v0.0.15...v0.0.16
|
|
806
|
+
[0.0.15]: https://github.com/bluepill-rb/bluepill/compare/v0.0.14...v0.0.15
|
|
807
|
+
[0.0.14]: https://github.com/bluepill-rb/bluepill/compare/v0.0.13...v0.0.14
|
|
808
|
+
[0.0.13]: https://github.com/bluepill-rb/bluepill/compare/v0.0.12...v0.0.13
|
|
809
|
+
[0.0.12]: https://github.com/bluepill-rb/bluepill/compare/v0.0.11...v0.0.12
|
|
810
|
+
[0.0.11]: https://github.com/bluepill-rb/bluepill/compare/v0.0.10...v0.0.11
|
|
811
|
+
[0.0.10]: https://github.com/bluepill-rb/bluepill/compare/v0.0.9...v0.0.10
|
|
812
|
+
[0.0.9]: https://github.com/bluepill-rb/bluepill/compare/v0.0.8...v0.0.9
|
|
813
|
+
[0.0.8]: https://github.com/bluepill-rb/bluepill/compare/v0.0.7...v0.0.8
|
|
814
|
+
[0.0.7]: https://github.com/bluepill-rb/bluepill/compare/v0.0.6...v0.0.7
|
|
815
|
+
[0.0.6]: https://github.com/bluepill-rb/bluepill/compare/v0.0.5...v0.0.6
|
|
816
|
+
[0.0.5]: https://github.com/bluepill-rb/bluepill/compare/v0.0.4...v0.0.5
|
|
817
|
+
[0.0.4]: https://github.com/bluepill-rb/bluepill/compare/v0.0.3...v0.0.4
|
|
818
|
+
[0.0.3]: https://github.com/bluepill-rb/bluepill/compare/v0.0.2...v0.0.3
|
|
819
|
+
[0.0.2]: https://github.com/bluepill-rb/bluepill/compare/v0.0.1...v0.0.2
|
|
820
|
+
[0.0.1]: https://github.com/bluepill-rb/bluepill/releases/tag/v0.0.1
|