puma 3.12.0 → 5.3.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puma might be problematic. Click here for more details.

Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/History.md +1413 -439
  3. data/LICENSE +23 -20
  4. data/README.md +131 -60
  5. data/bin/puma-wild +3 -9
  6. data/docs/architecture.md +24 -19
  7. data/docs/compile_options.md +19 -0
  8. data/docs/deployment.md +38 -13
  9. data/docs/fork_worker.md +33 -0
  10. data/docs/jungle/README.md +9 -0
  11. data/{tools → docs}/jungle/rc.d/README.md +1 -1
  12. data/{tools → docs}/jungle/rc.d/puma +2 -2
  13. data/{tools → docs}/jungle/rc.d/puma.conf +0 -0
  14. data/docs/kubernetes.md +66 -0
  15. data/docs/nginx.md +1 -1
  16. data/docs/plugins.md +20 -10
  17. data/docs/rails_dev_mode.md +29 -0
  18. data/docs/restart.md +47 -22
  19. data/docs/signals.md +7 -6
  20. data/docs/stats.md +142 -0
  21. data/docs/systemd.md +48 -70
  22. data/ext/puma_http11/PumaHttp11Service.java +2 -2
  23. data/ext/puma_http11/ext_help.h +1 -1
  24. data/ext/puma_http11/extconf.rb +27 -0
  25. data/ext/puma_http11/http11_parser.c +84 -109
  26. data/ext/puma_http11/http11_parser.h +1 -1
  27. data/ext/puma_http11/http11_parser.java.rl +22 -38
  28. data/ext/puma_http11/http11_parser.rl +4 -2
  29. data/ext/puma_http11/http11_parser_common.rl +3 -3
  30. data/ext/puma_http11/mini_ssl.c +262 -87
  31. data/ext/puma_http11/no_ssl/PumaHttp11Service.java +15 -0
  32. data/ext/puma_http11/org/jruby/puma/Http11.java +108 -116
  33. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +89 -106
  34. data/ext/puma_http11/org/jruby/puma/MiniSSL.java +92 -22
  35. data/ext/puma_http11/puma_http11.c +34 -50
  36. data/lib/puma/app/status.rb +68 -49
  37. data/lib/puma/binder.rb +197 -144
  38. data/lib/puma/cli.rb +17 -15
  39. data/lib/puma/client.rb +257 -226
  40. data/lib/puma/cluster/worker.rb +176 -0
  41. data/lib/puma/cluster/worker_handle.rb +90 -0
  42. data/lib/puma/cluster.rb +223 -212
  43. data/lib/puma/commonlogger.rb +4 -2
  44. data/lib/puma/configuration.rb +58 -51
  45. data/lib/puma/const.rb +41 -19
  46. data/lib/puma/control_cli.rb +117 -73
  47. data/lib/puma/detect.rb +26 -3
  48. data/lib/puma/dsl.rb +531 -123
  49. data/lib/puma/error_logger.rb +104 -0
  50. data/lib/puma/events.rb +57 -31
  51. data/lib/puma/io_buffer.rb +9 -5
  52. data/lib/puma/jruby_restart.rb +2 -58
  53. data/lib/puma/json.rb +96 -0
  54. data/lib/puma/launcher.rb +182 -70
  55. data/lib/puma/minissl/context_builder.rb +79 -0
  56. data/lib/puma/minissl.rb +149 -48
  57. data/lib/puma/null_io.rb +15 -1
  58. data/lib/puma/plugin/tmp_restart.rb +2 -0
  59. data/lib/puma/plugin.rb +8 -12
  60. data/lib/puma/queue_close.rb +26 -0
  61. data/lib/puma/rack/builder.rb +4 -5
  62. data/lib/puma/rack/urlmap.rb +2 -0
  63. data/lib/puma/rack_default.rb +2 -0
  64. data/lib/puma/reactor.rb +87 -316
  65. data/lib/puma/request.rb +456 -0
  66. data/lib/puma/runner.rb +33 -52
  67. data/lib/puma/server.rb +288 -679
  68. data/lib/puma/single.rb +13 -67
  69. data/lib/puma/state_file.rb +10 -3
  70. data/lib/puma/systemd.rb +46 -0
  71. data/lib/puma/thread_pool.rb +131 -81
  72. data/lib/puma/util.rb +14 -6
  73. data/lib/puma.rb +54 -0
  74. data/lib/rack/handler/puma.rb +8 -6
  75. data/tools/Dockerfile +16 -0
  76. data/tools/trickletest.rb +0 -1
  77. metadata +45 -29
  78. data/ext/puma_http11/io_buffer.c +0 -155
  79. data/lib/puma/accept_nonblock.rb +0 -23
  80. data/lib/puma/compat.rb +0 -14
  81. data/lib/puma/convenient.rb +0 -23
  82. data/lib/puma/daemon_ext.rb +0 -31
  83. data/lib/puma/delegation.rb +0 -11
  84. data/lib/puma/java_io_buffer.rb +0 -45
  85. data/lib/puma/rack/backports/uri/common_193.rb +0 -33
  86. data/lib/puma/tcp_logger.rb +0 -39
  87. data/tools/jungle/README.md +0 -19
  88. data/tools/jungle/init.d/README.md +0 -61
  89. data/tools/jungle/init.d/puma +0 -421
  90. data/tools/jungle/init.d/run-puma +0 -18
  91. data/tools/jungle/upstart/README.md +0 -61
  92. data/tools/jungle/upstart/puma-manager.conf +0 -31
  93. data/tools/jungle/upstart/puma.conf +0 -69
data/History.md CHANGED
@@ -1,34 +1,401 @@
1
+ ## 5.3.1 / 2021-05-11
2
+
3
+ * Security
4
+ * Close keepalive connections after the maximum number of fast inlined requests (#2625)
5
+
6
+ ## 5.3.0 / 2021-05-07
7
+
8
+ * Features
9
+ * Add support for Linux's abstract sockets ([#2564], [#2526])
10
+ * Add debug to worker timeout and startup ([#2559], [#2528])
11
+ * Print warning when running one-worker cluster ([#2565], [#2534])
12
+ * Don't close systemd activated socket on pumactl restart ([#2563], [#2504])
13
+
14
+ * Bugfixes
15
+ * systemd - fix event firing ([#2591], [#2572])
16
+ * Immediately unlink temporary files ([#2613])
17
+ * Improve parsing of HTTP_HOST header ([#2605], [#2584])
18
+ * Handle fatal error that has no backtrace ([#2607], [#2552])
19
+ * Fix timing out requests too early ([#2606], [#2574])
20
+ * Handle segfault in Ruby 2.6.6 on thread-locals ([#2567], [#2566])
21
+ * Server#closed_socket? - parameter may be a MiniSSL::Socket ([#2596])
22
+ * Define UNPACK_TCP_STATE_FROM_TCP_INFO in the right place ([#2588], [#2556])
23
+ * request.rb - fix chunked assembly for ascii incompatible encodings, add test ([#2585], [#2583])
24
+
25
+ * Performance
26
+ * Reset peerip only if remote_addr_header is set ([#2609])
27
+ * Reduce puma_parser struct size ([#2590])
28
+
29
+ * Refactor
30
+ * Refactor drain on shutdown ([#2600])
31
+ * Micro optimisations in `wait_for_less_busy_worker` feature ([#2579])
32
+ * Lots of test fixes
33
+
34
+ ## 5.2.2 / 2021-02-22
35
+
36
+ * Bugfixes
37
+ * Add `#flush` and `#sync` methods to `Puma::NullIO` ([#2553])
38
+ * Restore `sync=true` on `STDOUT` and `STDERR` streams ([#2557])
39
+
40
+ ## 5.2.1 / 2021-02-05
41
+
42
+ * Bugfixes
43
+ * Fix TCP cork/uncork operations to work with ssl clients ([#2550])
44
+ * Require rack/common_logger explicitly if :verbose is true ([#2547])
45
+ * MiniSSL::Socket#write - use data.byteslice(wrote..-1) ([#2543])
46
+ * Set `@env[CONTENT_LENGTH]` value as string. ([#2549])
47
+
48
+ ## 5.2.0 / 2021-01-27
49
+
50
+ * Features
51
+ * 10x latency improvement for MRI on ssl connections by reducing overhead ([#2519])
52
+ * Add option to specify the desired IO selector backend for libev ([#2522])
53
+ * Add ability to set OpenSSL verification flags (MRI only) ([#2490])
54
+ * Uses `flush` after writing messages to avoid mutating $stdout and $stderr using `sync=true` ([#2486])
55
+
56
+ * Bugfixes
57
+ * MiniSSL - Update dhparam to 2048 bit for use with SSL_CTX_set_tmp_dh ([#2535])
58
+ * Change 'Goodbye!' message to be output after listeners are closed ([#2529])
59
+ * Fix ssl bind logging with 0.0.0.0 and localhost ([#2533])
60
+ * Fix compiler warnings, but skipped warnings related to ragel state machine generated code ([#1953])
61
+ * Fix phased restart errors related to nio4r gem when using the Puma control server ([#2516])
62
+ * Add `#string` method to `Puma::NullIO` ([#2520])
63
+ * Fix binding via Rack handler to IPv6 addresses ([#2521])
64
+
65
+ * Refactor
66
+ * Refactor MiniSSL::Context on MRI, fix MiniSSL::Socket#write ([#2519])
67
+ * Remove `Server#read_body` ([#2531])
68
+ * Fail build if compiling extensions raises warnings on GH Actions, configurable via `MAKE_WARNINGS_INTO_ERRORS` ([#1953])
69
+
70
+ ## 5.1.1 / 2020-12-10
71
+
72
+ * Bugfixes
73
+ * Fix over eager matching against banned header names ([#2510])
74
+
75
+ ## 5.1.0 / 2020-11-30
76
+
77
+ * Features
78
+ * Phased restart availability is now always logged, even if it is not available.
79
+ * Prints the loaded configuration if the environment variable `PUMA_LOG_CONFIG` is present ([#2472])
80
+ * Integrate with systemd's watchdog and notification features ([#2438])
81
+ * Adds max_fast_inline as a configuration option for the Server object ([#2406])
82
+ * You can now fork workers from worker 0 using SIGURG w/o fork_worker enabled [#2449]
83
+ * Add option to bind to systemd activated sockets ([#2362])
84
+ * Add compile option to change the `QUERY_STRING` max length ([#2485])
85
+
86
+ * Bugfixes
87
+ * Fix JRuby handling in Puma::DSL#ssl_bind ([#2489])
88
+ * control_cli.rb - all normal output should be to @stdout ([#2487])
89
+ * Catch 'Error in reactor loop escaped: mode not supported for this object: r' ([#2477])
90
+ * Ignore Rails' reaper thread (and any thread marked forksafe) for warning ([#2475])
91
+ * Ignore illegal (by Rack spec) response header ([#2439])
92
+ * Close idle connections immediately on shutdown ([#2460])
93
+ * Fix some instances of phased restart errors related to the `json` gem ([#2473])
94
+ * Remove use of `json` gem to fix phased restart errors ([#2479])
95
+ * Fix grouping regexp of ILLEGAL_HEADER_KEY_REGEX ([#2495])
96
+
97
+ ## 5.0.4 / 2020-10-27
98
+
99
+ * Bugfixes
100
+ * Pass preloaded application into new workers if available when using `preload_app` ([#2461], [#2454])
101
+
102
+ ## 5.0.3 / 2020-10-26
103
+
104
+ * Bugfixes
105
+ * Add Client#io_ok?, check before Reactor#register ([#2432])
106
+ * Fix hang on shutdown in refork ([#2442])
107
+ * Fix `Bundler::GemNotFound` errors for `nio4r` gem during phased restarts ([#2427], [#2018])
108
+ * Server run thread safety fix ([#2435])
109
+ * Fire `on_booted` after server starts ([#2431], [#2212])
110
+ * Cleanup daemonization in rc.d script ([#2409])
111
+
112
+ * Refactor
113
+ * Remove accept_nonblock.rb, add test_integration_ssl.rb ([#2448])
114
+ * Refactor status.rb - dry it up a bit ([#2450])
115
+ * Extract req/resp methods to new request.rb from server.rb ([#2419])
116
+ * Refactor Reactor and Client request buffering ([#2279])
117
+ * client.rb - remove JRuby specific 'finish' code ([#2412])
118
+ * Consolidate fast_write calls in Server, extract early_hints assembly ([#2405])
119
+ * Remove upstart from docs ([#2408])
120
+ * Extract worker process into separate class ([#2374])
121
+ * Consolidate option handling in Server, Server small refactors, doc changes ([#2389])
122
+
123
+ ## 5.0.2 / 2020-09-28
124
+
125
+ * Bugfixes
126
+ * Reverted API changes to Server.
127
+
128
+ ## 5.0.1 / 2020-09-28
129
+
130
+ * Bugfixes
131
+ * Fix LoadError in CentOS 8 ([#2381])
132
+ * Better error handling during force shutdown ([#2271])
133
+ * Prevent connections from entering Reactor after shutdown begins ([#2377])
134
+ * Fix error backtrace debug logging && Do not log request dump if it is not parsed ([#2376])
135
+ * Split TCP_CORK and TCP_INFO ([#2372])
136
+ * Do not log EOFError when a client connection is closed without write ([#2384])
137
+
138
+ * Refactor
139
+ * Change Events#ssl_error signature from (error, peeraddr, peercert) to (error, ssl_socket) ([#2375])
140
+ * Consolidate option handling in Server, Server small refactors, doc chang ([#2373])
141
+
142
+ ## 5.0.0 / 2020-09-17
143
+
144
+ * Features
145
+ * Allow compiling without OpenSSL and dynamically load files needed for SSL, add 'no ssl' CI ([#2305])
146
+ * EXPERIMENTAL: Add `fork_worker` option and `refork` command for reduced memory usage by forking from a worker process instead of the master process. ([#2099])
147
+ * EXPERIMENTAL: Added `wait_for_less_busy_worker` config. This may reduce latency on MRI through inserting a small delay before re-listening on the socket if worker is busy ([#2079]).
148
+ * EXPERIMENTAL: Added `nakayoshi_fork` option. Reduce memory usage in preloaded cluster-mode apps by GCing before fork and compacting, where available. ([#2093], [#2256])
149
+ * Added pumactl `thread-backtraces` command to print thread backtraces ([#2054])
150
+ * Added incrementing `requests_count` to `Puma.stats`. ([#2106])
151
+ * Increased maximum URI path length from 2048 to 8192 bytes ([#2167], [#2344])
152
+ * `lowlevel_error_handler` is now called during a forced threadpool shutdown, and if a callable with 3 arguments is set, we now also pass the status code ([#2203])
153
+ * Faster phased restart and worker timeout ([#2220])
154
+ * Added `state_permission` to config DSL to set state file permissions ([#2238])
155
+ * Added `Puma.stats_hash`, which returns a stats in Hash instead of a JSON string ([#2086], [#2253])
156
+ * `rack.multithread` and `rack.multiprocess` now dynamically resolved by `max_thread` and `workers` respectively ([#2288])
157
+
158
+ * Deprecations, Removals and Breaking API Changes
159
+ * `--control` has been removed. Use `--control-url` ([#1487])
160
+ * `worker_directory` has been removed. Use `directory`.
161
+ * min_threads now set by environment variables PUMA_MIN_THREADS and MIN_THREADS. ([#2143])
162
+ * max_threads now set by environment variables PUMA_MAX_THREADS and MAX_THREADS. ([#2143])
163
+ * max_threads default to 5 in MRI or 16 for all other interpreters. ([#2143])
164
+ * `preload_app!` is on by default if number of workers > 1 and set via `WEB_CONCURRENCY` ([#2143])
165
+ * Puma::Plugin.workers_supported? has been removed. Use Puma.forkable? instead. ([#2143])
166
+ * `tcp_mode` has been removed without replacement. ([#2169])
167
+ * Daemonization has been removed without replacement. ([#2170])
168
+ * Changed #connected_port to #connected_ports ([#2076])
169
+ * Configuration: `environment` is read from `RAILS_ENV`, if `RACK_ENV` can't be found ([#2022])
170
+ * Log binding on http:// for TCP bindings to make it clickable ([#2300])
171
+
172
+ * Bugfixes
173
+ * Fix JSON loading issues on phased-restarts ([#2269])
174
+ * Improve shutdown reliability ([#2312], [#2338])
175
+ * Close client http connections made to an ssl server with TLSv1.3 ([#2116])
176
+ * Do not set user_config to quiet by default to allow for file config ([#2074])
177
+ * Always close SSL connection in Puma::ControlCLI ([#2211])
178
+ * Windows update extconf.rb for use with ssp and varied Ruby/MSYS2 combinations ([#2069])
179
+ * Ensure control server Unix socket is closed on shutdown ([#2112])
180
+ * Preserve `BUNDLE_GEMFILE` env var when using `prune_bundler` ([#1893])
181
+ * Send 408 request timeout even when queue requests is disabled ([#2119])
182
+ * Rescue IO::WaitReadable instead of EAGAIN for blocking read ([#2121])
183
+ * Ensure `BUNDLE_GEMFILE` is unspecified in workers if unspecified in master when using `prune_bundler` ([#2154])
184
+ * Rescue and log exceptions in hooks defined by users (on_worker_boot, after_worker_fork etc) ([#1551])
185
+ * Read directly from the socket in #read_and_drop to avoid raising further SSL errors ([#2198])
186
+ * Set `Connection: closed` header when queue requests is disabled ([#2216])
187
+ * Pass queued requests to thread pool on server shutdown ([#2122])
188
+ * Fixed a few minor concurrency bugs in ThreadPool that may have affected non-GVL Rubies ([#2220])
189
+ * Fix `out_of_band` hook never executed if the number of worker threads is > 1 ([#2177])
190
+ * Fix ThreadPool#shutdown timeout accuracy ([#2221])
191
+ * Fix `UserFileDefaultOptions#fetch` to properly use `default` ([#2233])
192
+ * Improvements to `out_of_band` hook ([#2234])
193
+ * Prefer the rackup file specified by the CLI ([#2225])
194
+ * Fix for spawning subprocesses with fork_worker option ([#2267])
195
+ * Set `CONTENT_LENGTH` for chunked requests ([#2287])
196
+ * JRuby - Add Puma::MiniSSL::Engine#init? and #teardown methods, run all SSL tests ([#2317])
197
+ * Improve shutdown reliability ([#2312])
198
+ * Resolve issue with threadpool waiting counter decrement when thread is killed
199
+ * Constrain rake-compiler version to 0.9.4 to fix `ClassNotFound` exception when using MiniSSL with Java8.
200
+ * Fix recursive `prune_bundler` ([#2319]).
201
+ * Ensure that TCP_CORK is usable
202
+ * Fix corner case when request body is chunked ([#2326])
203
+ * Fix filehandle leak in MiniSSL ([#2299])
204
+
205
+ * Refactor
206
+ * Remove unused loader argument from Plugin initializer ([#2095])
207
+ * Simplify `Configuration.random_token` and remove insecure fallback ([#2102])
208
+ * Simplify `Runner#start_control` URL parsing ([#2111])
209
+ * Removed the IOBuffer extension and replaced with Ruby ([#1980])
210
+ * Update `Rack::Handler::Puma.run` to use `**options` ([#2189])
211
+ * ThreadPool concurrency refactoring ([#2220])
212
+ * JSON parse cluster worker stats instead of regex ([#2124])
213
+ * Support parallel tests in verbose progress reporting ([#2223])
214
+ * Refactor error handling in server accept loop ([#2239])
215
+
216
+ ## 4.3.8 / 2021-05-11
217
+
218
+ * Security
219
+ * Close keepalive connections after the maximum number of fast inlined requests (#2625)
220
+
221
+ ## 4.3.7 / 2020-11-30
222
+
223
+ * Bugfixes
224
+ * Backport set CONTENT_LENGTH for chunked requests (Originally: [#2287], backport: [#2496])
225
+
226
+ ## 4.3.6 / 2020-09-05
227
+
228
+ * Bugfixes
229
+ * Explicitly include ctype.h to fix compilation warning and build error on macOS with Xcode 12 ([#2304])
230
+ * Don't require json at boot ([#2269])
231
+
232
+ ## 4.3.4/4.3.5 and 3.12.5/3.12.6 / 2020-05-22
233
+
234
+ Each patchlevel release contains a separate security fix. We recommend simply upgrading to 4.3.5/3.12.6.
235
+
236
+ * Security
237
+ * Fix: Fixed two separate HTTP smuggling vulnerabilities that used the Transfer-Encoding header. CVE-2020-11076 and CVE-2020-11077.
238
+
239
+ ## 4.3.3 and 3.12.4 / 2020-02-28
240
+
241
+ * Bugfixes
242
+ * Fix: Fixes a problem where we weren't splitting headers correctly on newlines ([#2132])
243
+ * Security
244
+ * Fix: Prevent HTTP Response splitting via CR in early hints. CVE-2020-5249.
245
+
246
+ ## 4.3.2 and 3.12.3 / 2020-02-27 (YANKED)
247
+
248
+ * Security
249
+ * Fix: Prevent HTTP Response splitting via CR/LF in header values. CVE-2020-5247.
250
+
251
+ ## 4.3.1 and 3.12.2 / 2019-12-05
252
+
253
+ * Security
254
+ * Fix: a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. CVE-2019-16770.
255
+
256
+ ## 4.3.0 / 2019-11-07
257
+
258
+ * Features
259
+ * Strip whitespace at end of HTTP headers ([#2010])
260
+ * Optimize HTTP parser for JRuby ([#2012])
261
+ * Add SSL support for the control app and cli ([#2046], [#2052])
262
+
263
+ * Bugfixes
264
+ * Fix Errno::EINVAL when SSL is enabled and browser rejects cert ([#1564])
265
+ * Fix pumactl defaulting puma to development if an environment was not specified ([#2035])
266
+ * Fix closing file stream when reading pid from pidfile ([#2048])
267
+ * Fix a typo in configuration option `--extra_runtime_dependencies` ([#2050])
268
+
269
+ ## 4.2.1 / 2019-10-07
270
+
271
+ * 3 bugfixes
272
+ * Fix socket activation of systemd (pre-existing) unix binder files ([#1842], [#1988])
273
+ * Deal with multiple calls to bind correctly ([#1986], [#1994], [#2006])
274
+ * Accepts symbols for `verify_mode` ([#1222])
275
+
276
+ ## 4.2.0 / 2019-09-23
277
+
278
+ * 6 features
279
+ * Pumactl has a new -e environment option and reads `config/puma/<environment>.rb` config files ([#1885])
280
+ * Semicolons are now allowed in URL paths (MRI only), useful for Angular or Redmine ([#1934])
281
+ * Allow extra dependencies to be defined when using prune_bundler ([#1105])
282
+ * Puma now reports the correct port when binding to port 0, also reports other listeners when binding to localhost ([#1786])
283
+ * Sending SIGINFO to any Puma worker now prints currently active threads and their backtraces ([#1320])
284
+ * Puma threads all now have their name set on Ruby 2.3+ ([#1968])
285
+ * 4 bugfixes
286
+ * Fix some misbehavior with phased restart and externally SIGTERMed workers ([#1908], [#1952])
287
+ * Fix socket closing on error ([#1941])
288
+ * Removed unnecessary SIGINT trap for JRuby that caused some race conditions ([#1961])
289
+ * Fix socket files being left around after process stopped ([#1970])
290
+ * Absolutely thousands of lines of test improvements and fixes thanks to @MSP-Greg
291
+
292
+ ## 4.1.1 / 2019-09-05
293
+
294
+ * 3 bugfixes
295
+ * Revert our attempt to not dup STDOUT/STDERR ([#1946])
296
+ * Fix socket close on error ([#1941])
297
+ * Fix workers not shutting down correctly ([#1908])
298
+
299
+ ## 4.1.0 / 2019-08-08
300
+
301
+ * 4 features
302
+ * Add REQUEST_PATH on parse error message ([#1831])
303
+ * You can now easily add custom log formatters with the `log_formatter` config option ([#1816])
304
+ * Puma.stats now provides process start times ([#1844])
305
+ * Add support for disabling TLSv1.1 ([#1836])
306
+
307
+ * 7 bugfixes
308
+ * Fix issue where Puma was creating zombie process entries ([#1887])
309
+ * Fix bugs with line-endings and chunked encoding ([#1812])
310
+ * RACK_URL_SCHEME is now set correctly in all conditions ([#1491])
311
+ * We no longer mutate global STDOUT/STDERR, particularly the sync setting ([#1837])
312
+ * SSL read_nonblock no longer blocks ([#1857])
313
+ * Swallow connection errors when sending early hints ([#1822])
314
+ * Backtrace no longer dumped when invalid pumactl commands are run ([#1863])
315
+
316
+ * 5 other
317
+ * Avoid casting worker_timeout twice ([#1838])
318
+ * Removed a call to private that wasn't doing anything ([#1882])
319
+ * README, Rakefile, docs and test cleanups ([#1848], [#1847], [#1846], [#1853], #1859, [#1850], [#1866], [#1870], [#1872], [#1833], [#1888])
320
+ * Puma.io has proper documentation now (https://puma.io/puma/)
321
+ * Added the Contributor Covenant CoC
322
+
323
+ * 1 known issue
324
+ * Some users are still experiencing issues surrounding socket activation and Unix sockets ([#1842])
325
+
326
+ ## 4.0.1 / 2019-07-11
327
+
328
+ * 2 bugfixes
329
+ * Fix socket removed after reload - should fix problems with systemd socket activation. ([#1829])
330
+ * Add extconf tests for DTLS_method & TLS_server_method, use in minissl.rb. Should fix "undefined symbol: DTLS_method" when compiling against old OpenSSL versions. ([#1832])
331
+ * 1 other
332
+ * Removed unnecessary RUBY_VERSION checks. ([#1827])
333
+
334
+ ## 4.0.0 / 2019-06-25
335
+
336
+ * 9 features
337
+ * Add support for disabling TLSv1.0 ([#1562])
338
+ * Request body read time metric ([#1569])
339
+ * Add out_of_band hook ([#1648])
340
+ * Re-implement (native) IOBuffer for JRuby ([#1691])
341
+ * Min worker timeout ([#1716])
342
+ * Add option to suppress SignalException on SIGTERM ([#1690])
343
+ * Allow mutual TLS CA to be set using `ssl_bind` DSL ([#1689])
344
+ * Reactor now uses nio4r instead of `select` ([#1728])
345
+ * Add status to pumactl with pidfile ([#1824])
346
+
347
+ * 10 bugfixes
348
+ * Do not accept new requests on shutdown ([#1685], [#1808])
349
+ * Fix 3 corner cases when request body is chunked ([#1508])
350
+ * Change pid existence check's condition branches ([#1650])
351
+ * Don't call .stop on a server that doesn't exist ([#1655])
352
+ * Implemented NID_X9_62_prime256v1 (P-256) curve over P-521 ([#1671])
353
+ * Fix @notify.close can't modify frozen IOError (RuntimeError) ([#1583])
354
+ * Fix Java 8 support ([#1773])
355
+ * Fix error `uninitialized constant Puma::Cluster` ([#1731])
356
+ * Fix `not_token` being able to be set to true ([#1803])
357
+ * Fix "Hang on SIGTERM with ruby 2.6 in clustered mode" (PR [#1741], [#1674], [#1720], [#1730], [#1755])
358
+
359
+ ## 3.12.1 / 2019-03-19
360
+
361
+ * 1 features
362
+ * Internal strings are frozen ([#1649])
363
+ * 3 bugfixes
364
+ * Fix chunked ending check ([#1607])
365
+ * Rack handler should use provided default host ([#1700])
366
+ * Better support for detecting runtimes that support `fork` ([#1630])
367
+
1
368
  ## 3.12.0 / 2018-07-13
2
369
 
3
370
  * 5 features:
4
- * You can now specify which SSL ciphers the server should support, default is unchanged (#1478)
5
- * The setting for Puma's `max_threads` is now in `Puma.stats` (#1604)
6
- * Pool capacity is now in `Puma.stats` (#1579)
7
- * Installs restricted to Ruby 2.2+ (#1506)
8
- * `--control` is now deprecated in favor of `--control-url` (#1487)
371
+ * You can now specify which SSL ciphers the server should support, default is unchanged ([#1478])
372
+ * The setting for Puma's `max_threads` is now in `Puma.stats` ([#1604])
373
+ * Pool capacity is now in `Puma.stats` ([#1579])
374
+ * Installs restricted to Ruby 2.2+ ([#1506])
375
+ * `--control` is now deprecated in favor of `--control-url` ([#1487])
9
376
 
10
377
  * 2 bugfixes:
11
- * Workers will no longer accept more web requests than they have capacity to process. This prevents an issue where one worker would accept lots of requests while starving other workers (#1563)
12
- * In a test env puma now emits the stack on an exception (#1557)
378
+ * Workers will no longer accept more web requests than they have capacity to process. This prevents an issue where one worker would accept lots of requests while starving other workers ([#1563])
379
+ * In a test env puma now emits the stack on an exception ([#1557])
13
380
 
14
381
  ## 3.11.4 / 2018-04-12
15
382
 
16
383
  * 2 features:
17
- * Manage puma as a service using rc.d (#1529)
18
- * Server stats are now available from a top level method (#1532)
384
+ * Manage puma as a service using rc.d ([#1529])
385
+ * Server stats are now available from a top level method ([#1532])
19
386
  * 5 bugfixes:
20
- * Fix parsing CLI options (#1482)
21
- * Order of stderr and stdout is made before redirecting to a log file (#1511)
22
- * Init.d fix of `ps -p` to check if pid exists (#1545)
23
- * Early hints bugfix (#1550)
24
- * Purge interrupt queue when closing socket fails (#1553)
387
+ * Fix parsing CLI options ([#1482])
388
+ * Order of stderr and stdout is made before redirecting to a log file ([#1511])
389
+ * Init.d fix of `ps -p` to check if pid exists ([#1545])
390
+ * Early hints bugfix ([#1550])
391
+ * Purge interrupt queue when closing socket fails ([#1553])
25
392
 
26
393
  ## 3.11.3 / 2018-03-05
27
394
 
28
395
  * 3 bugfixes:
29
- * Add closed? to MiniSSL::Socket for use in reactor (#1510)
30
- * Handle EOFError at the toplevel of the server threads (#1524) (#1507)
31
- * Deal with zero sized bodies when using SSL (#1483)
396
+ * Add closed? to MiniSSL::Socket for use in reactor ([#1510])
397
+ * Handle EOFError at the toplevel of the server threads ([#1524]) ([#1507])
398
+ * Deal with zero sized bodies when using SSL ([#1483])
32
399
 
33
400
  ## 3.11.2 / 2018-01-19
34
401
 
@@ -38,83 +405,83 @@
38
405
  ## 3.11.1 / 2018-01-18
39
406
 
40
407
  * 1 bugfix:
41
- * Handle read\_nonblock returning nil when the socket close (#1502)
408
+ * Handle read\_nonblock returning nil when the socket close ([#1502])
42
409
 
43
410
  ## 3.11.0 / 2017-11-20
44
411
 
45
412
  * 2 features:
46
- * HTTP 103 Early Hints (#1403)
47
- * 421/451 status codes now have correct status messages attached (#1435)
413
+ * HTTP 103 Early Hints ([#1403])
414
+ * 421/451 status codes now have correct status messages attached ([#1435])
48
415
 
49
416
  * 9 bugfixes:
50
- * Environment config files (/config/puma/<ENV>.rb) load correctly (#1340)
51
- * Specify windows dependencies correctly (#1434, #1436)
52
- * puma/events required in test helper (#1418)
53
- * Correct control CLI's option help text (#1416)
54
- * Remove a warning for unused variable in mini_ssl (#1409)
55
- * Correct pumactl docs argument ordering (#1427)
56
- * Fix an uninitialized variable warning in server.rb (#1430)
57
- * Fix docs typo/error in Launcher init (#1429)
58
- * Deal with leading spaces in RUBYOPT (#1455)
417
+ * Environment config files (/config/puma/<ENV>.rb) load correctly ([#1340])
418
+ * Specify windows dependencies correctly ([#1434], [#1436])
419
+ * puma/events required in test helper ([#1418])
420
+ * Correct control CLI's option help text ([#1416])
421
+ * Remove a warning for unused variable in mini_ssl ([#1409])
422
+ * Correct pumactl docs argument ordering ([#1427])
423
+ * Fix an uninitialized variable warning in server.rb ([#1430])
424
+ * Fix docs typo/error in Launcher init ([#1429])
425
+ * Deal with leading spaces in RUBYOPT ([#1455])
59
426
 
60
427
  * 2 other:
61
- * Add docs about internals (#1425, #1452)
62
- * Tons of test fixes from @MSP-Greg (#1439, #1442, #1464)
428
+ * Add docs about internals ([#1425], [#1452])
429
+ * Tons of test fixes from @MSP-Greg ([#1439], [#1442], [#1464])
63
430
 
64
431
  ## 3.10.0 / 2017-08-17
65
432
 
66
433
  * 3 features:
67
- * The status server has a new /gc and /gc-status command. (#1384)
68
- * The persistent and first data timeouts are now configurable (#1111)
69
- * Implemented RFC 2324 (#1392)
434
+ * The status server has a new /gc and /gc-status command. ([#1384])
435
+ * The persistent and first data timeouts are now configurable ([#1111])
436
+ * Implemented RFC 2324 ([#1392])
70
437
 
71
438
  * 12 bugfixes:
72
- * Not really a Puma bug, but @NickolasVashchenko created a gem to workaround a Ruby bug that some users of Puma may be experiencing. See README for more. (#1347)
73
- * Fix hangups with SSL and persistent connections. (#1334)
74
- * Fix Rails double-binding to a port (#1383)
75
- * Fix incorrect thread names (#1368)
76
- * Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. (#1318)
77
- * Fix compatibility with RUBYOPT="--enable-frozen-string-literal" (#1376)
78
- * Fixed some compiler warnings (#1388)
79
- * We actually run the integration tests in CI now (#1390)
80
- * No longer shipping unnecessary directories in the gemfile (#1391)
81
- * If RUBYOPT is nil, we no longer blow up on restart. (#1385)
82
- * Correct response to SIGINT (#1377)
83
- * Proper exit code returned when we receive a TERM signal (#1337)
439
+ * Not really a Puma bug, but @NickolasVashchenko created a gem to workaround a Ruby bug that some users of Puma may be experiencing. See README for more. ([#1347])
440
+ * Fix hangups with SSL and persistent connections. ([#1334])
441
+ * Fix Rails double-binding to a port ([#1383])
442
+ * Fix incorrect thread names ([#1368])
443
+ * Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. ([#1318])
444
+ * Fix compatibility with RUBYOPT="--enable-frozen-string-literal" ([#1376])
445
+ * Fixed some compiler warnings ([#1388])
446
+ * We actually run the integration tests in CI now ([#1390])
447
+ * No longer shipping unnecessary directories in the gemfile ([#1391])
448
+ * If RUBYOPT is nil, we no longer blow up on restart. ([#1385])
449
+ * Correct response to SIGINT ([#1377])
450
+ * Proper exit code returned when we receive a TERM signal ([#1337])
84
451
 
85
452
  * 3 refactors:
86
453
  * Various test improvements from @grosser
87
- * Rubocop (#1325)
88
- * Hoe has been removed (#1395)
454
+ * Rubocop ([#1325])
455
+ * Hoe has been removed ([#1395])
89
456
 
90
457
  * 1 known issue:
91
- * Socket activation doesn't work in JRuby. Their fault, not ours. (#1367)
458
+ * Socket activation doesn't work in JRuby. Their fault, not ours. ([#1367])
92
459
 
93
460
  ## 3.9.1 / 2017-06-03
94
461
 
95
462
  * 2 bugfixes:
96
- * Fixed compatibility with older Bundler versions (#1314)
97
- * Some internal test/development cleanup (#1311, #1313)
463
+ * Fixed compatibility with older Bundler versions ([#1314])
464
+ * Some internal test/development cleanup ([#1311], [#1313])
98
465
 
99
466
  ## 3.9.0 / 2017-06-01
100
467
 
101
468
  * 2 features:
102
- * The ENV is now reset to its original values when Puma restarts via USR1/USR2 (#1260) (MRI only, no JRuby support)
103
- * Puma will no longer accept more clients than the maximum number of threads. (#1278)
469
+ * The ENV is now reset to its original values when Puma restarts via USR1/USR2 ([#1260]) (MRI only, no JRuby support)
470
+ * Puma will no longer accept more clients than the maximum number of threads. ([#1278])
104
471
 
105
472
  * 9 bugfixes:
106
- * Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR (#1306)
107
- * Fix SSL/WebSocket compatibility (#1274)
108
- * HTTP headers with empty values are no longer omitted from responses. (#1261)
109
- * Fix a Rack env key which was set to nil. (#1259)
110
- * peercert has been implemented for JRuby (#1248)
111
- * Fix port settings when using rails s (#1277, #1290)
112
- * Fix compat w/LibreSSL (#1285)
113
- * Fix restarting Puma w/symlinks and a new Gemfile (#1282)
114
- * Replace Dir.exists? with Dir.exist? (#1294)
473
+ * Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR ([#1306])
474
+ * Fix SSL/WebSocket compatibility ([#1274])
475
+ * HTTP headers with empty values are no longer omitted from responses. ([#1261])
476
+ * Fix a Rack env key which was set to nil. ([#1259])
477
+ * peercert has been implemented for JRuby ([#1248])
478
+ * Fix port settings when using rails s ([#1277], [#1290])
479
+ * Fix compat w/LibreSSL ([#1285])
480
+ * Fix restarting Puma w/symlinks and a new Gemfile ([#1282])
481
+ * Replace Dir.exists? with Dir.exist? ([#1294])
115
482
 
116
483
  * 1 known issue:
117
- * A bug in MRI 2.2+ can result in IOError: stream closed. See #1206. This issue has existed since at least Puma 3.6, and probably further back.
484
+ * A bug in MRI 2.2+ can result in IOError: stream closed. See [#1206]. This issue has existed since at least Puma 3.6, and probably further back.
118
485
 
119
486
  * 1 refactor:
120
487
  * Lots of test fixups from @grosser.
@@ -122,75 +489,75 @@
122
489
  ## 3.8.2 / 2017-03-14
123
490
 
124
491
  * 1 bugfix:
125
- * Deal with getsockopt with TCP\_INFO failing for sockets that say they're TCP but aren't really. (#1241)
492
+ * Deal with getsockopt with TCP\_INFO failing for sockets that say they're TCP but aren't really. ([#1241])
126
493
 
127
494
  ## 3.8.1 / 2017-03-10
128
495
 
129
496
  * 1 bugfix:
130
- * Remove method call to method that no longer exists (#1239)
497
+ * Remove method call to method that no longer exists ([#1239])
131
498
 
132
499
  ## 3.8.0 / 2017-03-09
133
500
 
134
501
  * 2 bugfixes:
135
- * Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ (#1234)
136
- * The `tmp/restart.txt` plugin no longer restricts the user from running more than one server from the same folder at a time (#1226)
502
+ * Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ ([#1234])
503
+ * The `tmp/restart.txt` plugin no longer restricts the user from running more than one server from the same folder at a time ([#1226])
137
504
 
138
505
  * 1 feature:
139
- * Closed clients are aborted to save capacity (#1227)
506
+ * Closed clients are aborted to save capacity ([#1227])
140
507
 
141
508
  * 1 refactor:
142
- * Bundler is no longer a dependency from tests (#1213)
509
+ * Bundler is no longer a dependency from tests ([#1213])
143
510
 
144
511
  ## 3.7.1 / 2017-02-20
145
512
 
146
513
  * 2 bugfixes:
147
- * Fix typo which blew up MiniSSL (#1182)
148
- * Stop overriding command-line options with the config file (#1203)
514
+ * Fix typo which blew up MiniSSL ([#1182])
515
+ * Stop overriding command-line options with the config file ([#1203])
149
516
 
150
517
  ## 3.7.0 / 2017-01-04
151
518
 
152
519
  * 6 minor features:
153
- * Allow rack handler to accept ssl host. (#1129)
154
- * Refactor TTOU processing. TTOU now handles multiple signals at once. (#1165)
520
+ * Allow rack handler to accept ssl host. ([#1129])
521
+ * Refactor TTOU processing. TTOU now handles multiple signals at once. ([#1165])
155
522
  * Pickup any remaining chunk data as the next request.
156
523
  * Prevent short term thread churn - increased auto trim default to 30 seconds.
157
- * Raise error when `stdout` or `stderr` is not writable. (#1175)
158
- * Add Rack 2.0 support to gemspec. (#1068)
524
+ * Raise error when `stdout` or `stderr` is not writable. ([#1175])
525
+ * Add Rack 2.0 support to gemspec. ([#1068])
159
526
 
160
527
  * 5 refactors:
161
- * Compare host and server name only once per call. (#1091)
162
- * Minor refactor on Thread pool (#1088)
528
+ * Compare host and server name only once per call. ([#1091])
529
+ * Minor refactor on Thread pool ([#1088])
163
530
  * Removed a ton of unused constants, variables and files.
164
531
  * Use MRI macros when allocating heap memory
165
- * Use hooks for on\_booted event. (#1160)
532
+ * Use hooks for on\_booted event. ([#1160])
166
533
 
167
534
  * 14 bugfixes:
168
- * Add eof? method to NullIO? (#1169)
169
- * Fix Puma startup in provided init.d script (#1061)
170
- * Fix default SSL mode back to none. (#1036)
171
- * Fixed the issue of @listeners getting nil io (#1120)
172
- * Make `get_dh1024` compatible with OpenSSL v1.1.0 (#1178)
173
- * More gracefully deal with SSL sessions. Fixes #1002
174
- * Move puma.rb to just autoloads. Fixes #1063
175
- * MiniSSL: Provide write as <<. Fixes #1089
176
- * Prune bundler should inherit fds (#1114)
177
- * Replace use of Process.getpgid which does not behave as intended on all platforms (#1110)
178
- * Transfer encoding header should be downcased before comparison (#1135)
179
- * Use same write log logic for hijacked requests. (#1081)
180
- * Fix `uninitialized constant Puma::StateFile` (#1138)
181
- * Fix access priorities of each level in LeveledOptions (#1118)
535
+ * Add eof? method to NullIO? ([#1169])
536
+ * Fix Puma startup in provided init.d script ([#1061])
537
+ * Fix default SSL mode back to none. ([#1036])
538
+ * Fixed the issue of @listeners getting nil io ([#1120])
539
+ * Make `get_dh1024` compatible with OpenSSL v1.1.0 ([#1178])
540
+ * More gracefully deal with SSL sessions. Fixes [#1002]
541
+ * Move puma.rb to just autoloads. Fixes [#1063]
542
+ * MiniSSL: Provide write as <<. Fixes [#1089]
543
+ * Prune bundler should inherit fds ([#1114])
544
+ * Replace use of Process.getpgid which does not behave as intended on all platforms ([#1110])
545
+ * Transfer encoding header should be downcased before comparison ([#1135])
546
+ * Use same write log logic for hijacked requests. ([#1081])
547
+ * Fix `uninitialized constant Puma::StateFile` ([#1138])
548
+ * Fix access priorities of each level in LeveledOptions ([#1118])
182
549
 
183
550
  * 3 others:
184
551
 
185
552
  * Lots of tests added/fixed/improved. Switched to Minitest from Test::Unit. Big thanks to @frodsan.
186
553
  * Lots of documentation added/improved.
187
- * Add license indicators to the HTTP extension. (#1075)
554
+ * Add license indicators to the HTTP extension. ([#1075])
188
555
 
189
556
  ## 3.6.2 / 2016-11-22
190
557
 
191
558
  * 1 bug fix:
192
559
 
193
- * Revert #1118/Fix access priorities of each level in LeveledOptions. This
560
+ * Revert [#1118]/Fix access priorities of each level in LeveledOptions. This
194
561
  had an unintentional side effect of changing the importance of command line
195
562
  options, such as -p.
196
563
 
@@ -199,11 +566,11 @@
199
566
  * 8 bug fixes:
200
567
 
201
568
  * Fix Puma start in init.d script.
202
- * Fix default SSL mode back to none. Fixes #1036
203
- * Fixed the issue of @listeners getting nil io, fix rails restart (#1120)
204
- * More gracefully deal with SSL sessions. Fixes #1002
569
+ * Fix default SSL mode back to none. Fixes [#1036]
570
+ * Fixed the issue of @listeners getting nil io, fix rails restart ([#1120])
571
+ * More gracefully deal with SSL sessions. Fixes [#1002]
205
572
  * Prevent short term thread churn.
206
- * Provide write as <<. Fixes #1089
573
+ * Provide write as <<. Fixes [#1089]
207
574
  * Fix access priorities of each level in LeveledOptions - fixes TTIN.
208
575
  * Stub description files updated for init.d.
209
576
 
@@ -215,18 +582,18 @@
215
582
  ## 3.6.0 / 2016-07-24
216
583
 
217
584
  * 12 bug fixes:
218
- * Add ability to detect a shutting down server. Fixes #932
219
- * Add support for Expect: 100-continue. Fixes #519
220
- * Check SSLContext better. Fixes #828
221
- * Clarify behavior of '-t num'. Fixes #984
222
- * Don't default to VERIFY_PEER. Fixes #1028
223
- * Don't use ENV['PWD'] on windows. Fixes #1023
224
- * Enlarge the scope of catching app exceptions. Fixes #1027
225
- * Execute background hooks after daemonizing. Fixes #925
226
- * Handle HUP as a stop unless there is IO redirection. Fixes #911
227
- * Implement chunked request handling. Fixes #620
228
- * Just rescue exception to return a 500. Fixes #1027
229
- * Redirect IO in the jruby daemon mode. Fixes #778
585
+ * Add ability to detect a shutting down server. Fixes [#932]
586
+ * Add support for Expect: 100-continue. Fixes [#519]
587
+ * Check SSLContext better. Fixes [#828]
588
+ * Clarify behavior of '-t num'. Fixes [#984]
589
+ * Don't default to VERIFY_PEER. Fixes [#1028]
590
+ * Don't use ENV['PWD'] on windows. Fixes [#1023]
591
+ * Enlarge the scope of catching app exceptions. Fixes [#1027]
592
+ * Execute background hooks after daemonizing. Fixes [#925]
593
+ * Handle HUP as a stop unless there is IO redirection. Fixes [#911]
594
+ * Implement chunked request handling. Fixes [#620]
595
+ * Just rescue exception to return a 500. Fixes [#1027]
596
+ * Redirect IO in the jruby daemon mode. Fixes [#778]
230
597
 
231
598
  ## 3.5.2 / 2016-07-20
232
599
 
@@ -234,12 +601,12 @@
234
601
  * Don't let persistent_timeout be nil
235
602
 
236
603
  * 1 PR merged:
237
- * Merge pull request #1021 from benzrf/patch-1
604
+ * Merge pull request [#1021] from benzrf/patch-1
238
605
 
239
606
  ## 3.5.1 / 2016-07-20
240
607
 
241
608
  * 1 bug fix:
242
- * Be sure to only listen on host:port combos once. Fixes #1022
609
+ * Be sure to only listen on host:port combos once. Fixes [#1022]
243
610
 
244
611
  ## 3.5.0 / 2016-07-18
245
612
 
@@ -247,14 +614,14 @@
247
614
  * Allow persistent_timeout to be configured via the dsl.
248
615
 
249
616
  * 9 bug fixes:
250
- * Allow a bare % in a query string. Fixes #958
251
- * Explicitly listen on all localhost addresses. Fixes #782
617
+ * Allow a bare % in a query string. Fixes [#958]
618
+ * Explicitly listen on all localhost addresses. Fixes [#782]
252
619
  * Fix `TCPLogger` log error in tcp cluster mode.
253
- * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
254
- * Fix puma/puma#968 Default verify_mode to peer
255
- * Log any exceptions in ThreadPool. Fixes #1010
256
- * Silence connection errors in the reactor. Fixes #959
257
- * Tiny fixes in hook documentation for #840
620
+ * Fix puma/puma[#968] Cannot bind SSL port due to missing verify_mode option
621
+ * Fix puma/puma[#968] Default verify_mode to peer
622
+ * Log any exceptions in ThreadPool. Fixes [#1010]
623
+ * Silence connection errors in the reactor. Fixes [#959]
624
+ * Tiny fixes in hook documentation for [#840]
258
625
  * It should not log requests if we want it to be quiet
259
626
 
260
627
  * 5 doc fixes:
@@ -265,43 +632,43 @@
265
632
  * Fix typo in example config
266
633
 
267
634
  * 14 PRs merged:
268
- * Merge pull request #1007 from willnet/patch-1
269
- * Merge pull request #1014 from jeznet/patch-1
270
- * Merge pull request #1015 from bf4/patch-1
271
- * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
272
- * Merge pull request #954 from jf/master
273
- * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
274
- * Merge pull request #956 from maxkwallace/master
275
- * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
276
- * Merge pull request #969 from frankwong15/master
277
- * Merge pull request #970 from willnet/delete-blank-document
278
- * Merge pull request #974 from rocketjob/feature/name_threads
279
- * Merge pull request #977 from snow/master
280
- * Merge pull request #981 from zach-chai/patch-1
281
- * Merge pull request #993 from scorix/master
635
+ * Merge pull request [#1007] from willnet/patch-1
636
+ * Merge pull request [#1014] from jeznet/patch-1
637
+ * Merge pull request [#1015] from bf4/patch-1
638
+ * Merge pull request [#1017] from jorihardman/configurable_persistent_timeout
639
+ * Merge pull request [#954] from jf/master
640
+ * Merge pull request [#955] from jf/add-request-info-to-standard-error-rescue
641
+ * Merge pull request [#956] from maxkwallace/master
642
+ * Merge pull request [#960] from kmayer/kmayer-plugins-heroku-restart
643
+ * Merge pull request [#969] from frankwong15/master
644
+ * Merge pull request [#970] from willnet/delete-blank-document
645
+ * Merge pull request [#974] from rocketjob/feature/name_threads
646
+ * Merge pull request [#977] from snow/master
647
+ * Merge pull request [#981] from zach-chai/patch-1
648
+ * Merge pull request [#993] from scorix/master
282
649
 
283
650
  ## 3.4.0 / 2016-04-07
284
651
 
285
652
  * 2 minor features:
286
- * Add ability to force threads to stop on shutdown. Fixes #938
287
- * Detect and commit seppuku when fork(2) fails. Fixes #529
653
+ * Add ability to force threads to stop on shutdown. Fixes [#938]
654
+ * Detect and commit seppuku when fork(2) fails. Fixes [#529]
288
655
 
289
656
  * 3 unknowns:
290
- * Ignore errors trying to update the backport tables. Fixes #788
291
- * Invoke the lowlevel_error in more places to allow for exception tracking. Fixes #894
292
- * Update the query string when an absolute URI is used. Fixes #937
657
+ * Ignore errors trying to update the backport tables. Fixes [#788]
658
+ * Invoke the lowlevel_error in more places to allow for exception tracking. Fixes [#894]
659
+ * Update the query string when an absolute URI is used. Fixes [#937]
293
660
 
294
661
  * 5 doc fixes:
295
662
  * Add Process Monitors section to top-level README
296
- * Better document the hooks. Fixes #840
663
+ * Better document the hooks. Fixes [#840]
297
664
  * docs/system.md sample config refinements and elaborations
298
665
  * Fix typos at couple of places.
299
666
  * Cleanup warnings
300
667
 
301
668
  * 3 PRs merged:
302
- * Merge pull request #945 from dekellum/systemd-docs-refined
303
- * Merge pull request #946 from vipulnsward/rm-pid
304
- * Merge pull request #947 from vipulnsward/housekeeping-typos
669
+ * Merge pull request [#945] from dekellum/systemd-docs-refined
670
+ * Merge pull request [#946] from vipulnsward/rm-pid
671
+ * Merge pull request [#947] from vipulnsward/housekeeping-typos
305
672
 
306
673
  ## 3.3.0 / 2016-04-05
307
674
 
@@ -314,9 +681,9 @@
314
681
  * Document UNIX signals with cluster on README.md
315
682
 
316
683
  * 3 PRs merged:
317
- * Merge pull request #936 from prathamesh-sonpatki/allow-overriding-config-options
318
- * Merge pull request #940 from kyledrake/signalsdoc
319
- * Merge pull request #942 from dekellum/socket-activate-improve
684
+ * Merge pull request [#936] from prathamesh-sonpatki/allow-overriding-config-options
685
+ * Merge pull request [#940] from kyledrake/signalsdoc
686
+ * Merge pull request [#942] from dekellum/socket-activate-improve
320
687
 
321
688
  ## 3.2.0 / 2016-03-20
322
689
 
@@ -329,32 +696,32 @@
329
696
  * Speed up phased-restart start
330
697
 
331
698
  * 2 PRs merged:
332
- * Merge pull request #927 from jlecour/gemfile_variants
333
- * Merge pull request #931 from joneslee85/patch-10
699
+ * Merge pull request [#927] from jlecour/gemfile_variants
700
+ * Merge pull request [#931] from joneslee85/patch-10
334
701
 
335
702
  ## 3.1.1 / 2016-03-17
336
703
 
337
704
  * 4 bug fixes:
338
705
  * Disable USR1 usage on JRuby
339
- * Fixes #922 - Correctly define file encoding as UTF-8
706
+ * Fixes [#922] - Correctly define file encoding as UTF-8
340
707
  * Set a more explicit SERVER_SOFTWARE Rack variable
341
- * Show RUBY_ENGINE_VERSION if available. Fixes #923
708
+ * Show RUBY_ENGINE_VERSION if available. Fixes [#923]
342
709
 
343
710
  * 3 PRs merged:
344
- * Merge pull request #912 from tricknotes/fix-allow-failures-in-travis-yml
345
- * Merge pull request #921 from swrobel/patch-1
346
- * Merge pull request #924 from tbrisker/patch-1
711
+ * Merge pull request [#912] from tricknotes/fix-allow-failures-in-travis-yml
712
+ * Merge pull request [#921] from swrobel/patch-1
713
+ * Merge pull request [#924] from tbrisker/patch-1
347
714
 
348
715
  ## 3.1.0 / 2016-03-05
349
716
 
350
717
  * 1 minor feature:
351
- * Add 'import' directive to config file. Fixes #916
718
+ * Add 'import' directive to config file. Fixes [#916]
352
719
 
353
720
  * 5 bug fixes:
354
- * Add 'fetch' to options. Fixes #913
355
- * Fix jruby daemonization. Fixes #918
356
- * Recreate the proper args manually. Fixes #910
357
- * Require 'time' to get iso8601. Fixes #914
721
+ * Add 'fetch' to options. Fixes [#913]
722
+ * Fix jruby daemonization. Fixes [#918]
723
+ * Recreate the proper args manually. Fixes [#910]
724
+ * Require 'time' to get iso8601. Fixes [#914]
358
725
 
359
726
  ## 3.0.2 / 2016-02-26
360
727
 
@@ -368,9 +735,9 @@
368
735
 
369
736
  * 3 PRs merged:
370
737
 
371
- * Merge pull request #901 from mitto/fix-pumactl-uninitialized-constant-statefile
372
- * Merge pull request #902 from corrupt952/fix_undefined_method_and_variable_when_execute_pumactl
373
- * Merge pull request #905 from Eric-Guo/master
738
+ * Merge pull request [#901] from mitto/fix-pumactl-uninitialized-constant-statefile
739
+ * Merge pull request [#902] from corrupt952/fix_undefined_method_and_variable_when_execute_pumactl
740
+ * Merge pull request [#905] from Eric-Guo/master
374
741
 
375
742
  ## 3.0.1 / 2016-02-25
376
743
 
@@ -387,7 +754,7 @@
387
754
  * Ruby pre-2.0 is no longer supported. We'll do our best to not add
388
755
  features that break those rubies but will no longer be testing
389
756
  with them.
390
- * Don't log requests by default. Fixes #852
757
+ * Don't log requests by default. Fixes [#852]
391
758
 
392
759
  * 2 major features:
393
760
 
@@ -399,36 +766,36 @@
399
766
 
400
767
  * Listen to unix socket with provided backlog if any
401
768
  * Improves the clustered stats to report worker stats
402
- * Pass the env to the lowlevel_error handler. Fixes #854
403
- * Treat path-like hosts as unix sockets. Fixes #824
769
+ * Pass the env to the lowlevel_error handler. Fixes [#854]
770
+ * Treat path-like hosts as unix sockets. Fixes [#824]
404
771
 
405
772
  * 5 bug fixes:
406
773
 
407
- * Clean thread locals when using keepalive. Fixes #823
408
- * Cleanup compiler warnings. Fixes #815
409
- * Expose closed? for use by the reactor. Fixes #835
410
- * Move signal handlers to separate method to prevent space leak. Fixes #798
411
- * Signal not full on worker exit #876
774
+ * Clean thread locals when using keepalive. Fixes [#823]
775
+ * Cleanup compiler warnings. Fixes [#815]
776
+ * Expose closed? for use by the reactor. Fixes [#835]
777
+ * Move signal handlers to separate method to prevent space leak. Fixes [#798]
778
+ * Signal not full on worker exit [#876]
412
779
 
413
780
  * 5 doc fixes:
414
781
 
415
782
  * Update README.md with various grammar fixes
416
783
  * Use newest version of Minitest
417
784
  * Add directory configuration docs, fix typo [ci skip]
418
- * Remove old COPYING notice. Fixes #849
785
+ * Remove old COPYING notice. Fixes [#849]
419
786
 
420
787
  * 10 merged PRs:
421
788
 
422
- * Merge pull request #871 from deepj/travis
423
- * Merge pull request #874 from wallclockbuilder/master
424
- * Merge pull request #883 from dadah89/igor/trim_only_worker
425
- * Merge pull request #884 from uistudio/async-callback
426
- * Merge pull request #888 from mlarraz/tick_minitest
427
- * Merge pull request #890 from todd/directory_docs
428
- * Merge pull request #891 from ctaintor/improve_clustered_status
429
- * Merge pull request #893 from spastorino/add_missing_require
430
- * Merge pull request #897 from zendesk/master
431
- * Merge pull request #899 from kch/kch-readme-fixes
789
+ * Merge pull request [#871] from deepj/travis
790
+ * Merge pull request [#874] from wallclockbuilder/master
791
+ * Merge pull request [#883] from dadah89/igor/trim_only_worker
792
+ * Merge pull request [#884] from uistudio/async-callback
793
+ * Merge pull request [#888] from mlarraz/tick_minitest
794
+ * Merge pull request [#890] from todd/directory_docs
795
+ * Merge pull request [#891] from ctaintor/improve_clustered_status
796
+ * Merge pull request [#893] from spastorino/add_missing_require
797
+ * Merge pull request [#897] from zendesk/master
798
+ * Merge pull request [#899] from kch/kch-readme-fixes
432
799
 
433
800
  ## 2.16.0 / 2016-01-27
434
801
 
@@ -445,7 +812,7 @@
445
812
  * 7 bug fixes:
446
813
 
447
814
  * Don't persist before_fork hook in state file
448
- * Reload bundler before pulling in rack. Fixes #859
815
+ * Reload bundler before pulling in rack. Fixes [#859]
449
816
  * Remove NEWRELIC_DISPATCHER env variable
450
817
  * Cleanup C code
451
818
  * Use Timeout.timeout instead of Object.timeout
@@ -457,18 +824,18 @@
457
824
  * Test against the latest Ruby 2.1, 2.2, 2.3, head and JRuby 9.0.4.0 on Travis
458
825
 
459
826
  * 12 merged PRs
460
- * Merge pull request #822 from kwugirl/remove_NEWRELIC_DISPATCHER
461
- * Merge pull request #833 from joemiller/jruby-client-tls-auth
462
- * Merge pull request #837 from YuriSolovyov/ssl-keystore-jruby
463
- * Merge pull request #839 from mezuka/master
464
- * Merge pull request #845 from deepj/timeout-deprecation
465
- * Merge pull request #846 from sriedel/strip_before_fork
466
- * Merge pull request #850 from deepj/travis
467
- * Merge pull request #853 from Jeffrey6052/patch-1
468
- * Merge pull request #857 from zendesk/faster_phased_restarts
469
- * Merge pull request #858 from mlarraz/fix_some_warnings
470
- * Merge pull request #860 from zendesk/expose_old_worker_count
471
- * Merge pull request #861 from zendesk/allow_control_url_umask
827
+ * Merge pull request [#822] from kwugirl/remove_NEWRELIC_DISPATCHER
828
+ * Merge pull request [#833] from joemiller/jruby-client-tls-auth
829
+ * Merge pull request [#837] from YuriSolovyov/ssl-keystore-jruby
830
+ * Merge pull request [#839] from mezuka/master
831
+ * Merge pull request [#845] from deepj/timeout-deprecation
832
+ * Merge pull request [#846] from sriedel/strip_before_fork
833
+ * Merge pull request [#850] from deepj/travis
834
+ * Merge pull request [#853] from Jeffrey6052/patch-1
835
+ * Merge pull request [#857] from zendesk/faster_phased_restarts
836
+ * Merge pull request [#858] from mlarraz/fix_some_warnings
837
+ * Merge pull request [#860] from zendesk/expose_old_worker_count
838
+ * Merge pull request [#861] from zendesk/allow_control_url_umask
472
839
 
473
840
  ## 2.15.3 / 2015-11-07
474
841
 
@@ -483,8 +850,8 @@
483
850
  * Only set ctx.ca iff there is a params['ca'] to set with.
484
851
 
485
852
  * 2 PRs merged:
486
- * Merge pull request #818 from unleashed/support-duplicate-headers
487
- * Merge pull request #819 from VictorLowther/fix-ca-and-verify_null-exception
853
+ * Merge pull request [#818] from unleashed/support-duplicate-headers
854
+ * Merge pull request [#819] from VictorLowther/fix-ca-and-verify_null-exception
488
855
 
489
856
  ## 2.15.1 / 2015-11-06
490
857
 
@@ -506,7 +873,7 @@
506
873
  * Disable SSL Compression
507
874
  * Fix bug setting worker_directory when using a symlink directory
508
875
  * Fix error message in DSL that was slightly inaccurate
509
- * Pumactl: set correct process name. Fixes #563
876
+ * Pumactl: set correct process name. Fixes [#563]
510
877
  * thread_pool: fix race condition when shutting down workers
511
878
 
512
879
  * 10 doc fixes:
@@ -516,30 +883,30 @@
516
883
  * Fix spelling errors.
517
884
  * Fix typo in deployment description
518
885
  * Fix typos (it's -> its) in events.rb and server.rb
519
- * fixing for typo mentioned in #803
886
+ * fixing for typo mentioned in [#803]
520
887
  * Spelling correction for README
521
888
  * thread_pool: fix typos in comment
522
889
  * More explicit docs for worker_timeout
523
890
 
524
891
  * 18 PRs merged:
525
- * Merge pull request #768 from nathansamson/patch-1
526
- * Merge pull request #773 from rossta/spelling_corrections
527
- * Merge pull request #774 from snow/master
528
- * Merge pull request #781 from sunsations/fix-typo
529
- * Merge pull request #791 from unleashed/allow_empty_tags
530
- * Merge pull request #793 from robdimarco/fix-working-directory-symlink-bug
531
- * Merge pull request #794 from peterkeen/patch-1
532
- * Merge pull request #795 from unleashed/redirects-from-cmdline
533
- * Merge pull request #796 from cschneid/fix_dsl_message
534
- * Merge pull request #799 from annafw/master
535
- * Merge pull request #800 from liamseanbrady/fix_typo
536
- * Merge pull request #801 from scottjg/ssl-chain-file
537
- * Merge pull request #802 from scottjg/ssl-crimes
538
- * Merge pull request #804 from burningTyger/patch-2
539
- * Merge pull request #809 from unleashed/threadpool-fix-race-in-shutdown
540
- * Merge pull request #810 from vlmonk/fix-pumactl-restart-bug
541
- * Merge pull request #814 from schneems/schneems/worker_timeout-docs
542
- * Merge pull request #817 from unleashed/worker-boot-timeout
892
+ * Merge pull request [#768] from nathansamson/patch-1
893
+ * Merge pull request [#773] from rossta/spelling_corrections
894
+ * Merge pull request [#774] from snow/master
895
+ * Merge pull request [#781] from sunsations/fix-typo
896
+ * Merge pull request [#791] from unleashed/allow_empty_tags
897
+ * Merge pull request [#793] from robdimarco/fix-working-directory-symlink-bug
898
+ * Merge pull request [#794] from peterkeen/patch-1
899
+ * Merge pull request [#795] from unleashed/redirects-from-cmdline
900
+ * Merge pull request [#796] from cschneid/fix_dsl_message
901
+ * Merge pull request [#799] from annafw/master
902
+ * Merge pull request [#800] from liamseanbrady/fix_typo
903
+ * Merge pull request [#801] from scottjg/ssl-chain-file
904
+ * Merge pull request [#802] from scottjg/ssl-crimes
905
+ * Merge pull request [#804] from burningTyger/patch-2
906
+ * Merge pull request [#809] from unleashed/threadpool-fix-race-in-shutdown
907
+ * Merge pull request [#810] from vlmonk/fix-pumactl-restart-bug
908
+ * Merge pull request [#814] from schneems/schneems/worker_timeout-docs
909
+ * Merge pull request [#817] from unleashed/worker-boot-timeout
543
910
 
544
911
  ## 2.14.0 / 2015-09-18
545
912
 
@@ -547,7 +914,7 @@
547
914
  * Make building with SSL support optional
548
915
 
549
916
  * 1 bug fix:
550
- * Use Rack::Builder if available. Fixes #735
917
+ * Use Rack::Builder if available. Fixes [#735]
551
918
 
552
919
  ## 2.13.4 / 2015-08-16
553
920
 
@@ -560,20 +927,20 @@
560
927
  Seriously, I need to revamp config with tests.
561
928
 
562
929
  * 1 bug fix:
563
- * Fix preserving options before cleaning for state. Fixes #769
930
+ * Fix preserving options before cleaning for state. Fixes [#769]
564
931
 
565
932
  ## 2.13.2 / 2015-08-15
566
933
 
567
934
  The "clearly I don't have enough tests for the config" release.
568
935
 
569
936
  * 1 bug fix:
570
- * Fix another place binds wasn't initialized. Fixes #767
937
+ * Fix another place binds wasn't initialized. Fixes [#767]
571
938
 
572
939
  ## 2.13.1 / 2015-08-15
573
940
 
574
941
  * 2 bug fixes:
575
- * Fix binds being masked in config files. Fixes #765
576
- * Use options from the config file properly in pumactl. Fixes #764
942
+ * Fix binds being masked in config files. Fixes [#765]
943
+ * Use options from the config file properly in pumactl. Fixes [#764]
577
944
 
578
945
  ## 2.13.0 / 2015-08-14
579
946
 
@@ -583,16 +950,16 @@ The "clearly I don't have enough tests for the config" release.
583
950
  * 3 bug fixes:
584
951
  * Check for OPENSSL_NO_ECDH before using ECDH
585
952
  * Eliminate logging overhead from JRuby SSL
586
- * Prefer cli options over config file ones. Fixes #669
953
+ * Prefer cli options over config file ones. Fixes [#669]
587
954
 
588
955
  * 1 deprecation:
589
- * Add deprecation warning to capistrano.rb. Fixes #673
956
+ * Add deprecation warning to capistrano.rb. Fixes [#673]
590
957
 
591
958
  * 4 PRs merged:
592
- * Merge pull request #668 from kcollignon/patch-1
593
- * Merge pull request #754 from nathansamson/before_boot
594
- * Merge pull request #759 from BenV/fix-centos6-build
595
- * Merge pull request #761 from looker/no-log
959
+ * Merge pull request [#668] from kcollignon/patch-1
960
+ * Merge pull request [#754] from nathansamson/before_boot
961
+ * Merge pull request [#759] from BenV/fix-centos6-build
962
+ * Merge pull request [#761] from looker/no-log
596
963
 
597
964
  ## 2.12.3 / 2015-08-03
598
965
 
@@ -607,10 +974,10 @@ The "clearly I don't have enough tests for the config" release.
607
974
  * ruby 1.8.7 compatibility patches
608
975
 
609
976
  * 4 PRs merged:
610
- * Merge pull request #742 from deivid-rodriguez/fix_missing_require
611
- * Merge pull request #743 from matthewd/skip-empty-chunks
612
- * Merge pull request #749 from huacnlee/fix-cap-uninitialized-puma-error
613
- * Merge pull request #751 from costi/compat_1_8_7
977
+ * Merge pull request [#742] from deivid-rodriguez/fix_missing_require
978
+ * Merge pull request [#743] from matthewd/skip-empty-chunks
979
+ * Merge pull request [#749] from huacnlee/fix-cap-uninitialized-puma-error
980
+ * Merge pull request [#751] from costi/compat_1_8_7
614
981
 
615
982
  * 1 test fix:
616
983
  * Add 1.8.7, rbx-1 (allow failures) to Travis.
@@ -618,20 +985,20 @@ The "clearly I don't have enough tests for the config" release.
618
985
  ## 2.12.2 / 2015-07-17
619
986
 
620
987
  * 2 bug fix:
621
- * Pull over and use Rack::URLMap. Fixes #741
622
- * Stub out peercert on JRuby for now. Fixes #739
988
+ * Pull over and use Rack::URLMap. Fixes [#741]
989
+ * Stub out peercert on JRuby for now. Fixes [#739]
623
990
 
624
991
  ## 2.12.1 / 2015-07-16
625
992
 
626
993
  * 2 bug fixes:
627
- * Use a constant format. Fixes #737
628
- * Use strerror for Windows sake. Fixes #733
994
+ * Use a constant format. Fixes [#737]
995
+ * Use strerror for Windows sake. Fixes [#733]
629
996
 
630
997
  * 1 doc change:
631
998
  * typo fix: occured -> occurred
632
999
 
633
1000
  * 1 PR merged:
634
- * Merge pull request #736 from paulanunda/paulanunda/typo-fix
1001
+ * Merge pull request [#736] from paulanunda/paulanunda/typo-fix
635
1002
 
636
1003
  ## 2.12.0 / 2015-07-14
637
1004
 
@@ -641,12 +1008,12 @@ The "clearly I don't have enough tests for the config" release.
641
1008
  * Do not suppress Content-Length on partial hijack
642
1009
  * Don't allow any exceptions to terminate a thread
643
1010
  * Handle ENOTCONN client disconnects when setting REMOTE_ADDR
644
- * Handle very early exit of cluster mode. Fixes #722
1011
+ * Handle very early exit of cluster mode. Fixes [#722]
645
1012
  * Install rack when running tests on travis to use rack/lint
646
1013
  * Make puma -v and -h return success exit code
647
1014
  * Make pumactl load config/puma.rb by default
648
- * Pass options from pumactl properly when pruning. Fixes #694
649
- * Remove rack dependency. Fixes #705
1015
+ * Pass options from pumactl properly when pruning. Fixes [#694]
1016
+ * Remove rack dependency. Fixes [#705]
650
1017
  * Remove the default Content-Type: text/plain
651
1018
  * Add Client Side Certificate Auth
652
1019
 
@@ -665,33 +1032,33 @@ The "clearly I don't have enough tests for the config" release.
665
1032
  * capistrano: Add additional env when start rails
666
1033
 
667
1034
  * 16 PRs merged:
668
- * Merge pull request #686 from jjb/patch-2
669
- * Merge pull request #693 from rob-murray/update-example-config
670
- * Merge pull request #697 from spk/tests-bind-on-rackup-file
671
- * Merge pull request #699 from deees/fix/require_rack_builder
672
- * Merge pull request #701 from deepj/master
673
- * Merge pull request #702 from Jimdo/thread-reaping
674
- * Merge pull request #703 from deepj/travis
675
- * Merge pull request #704 from grega/master
676
- * Merge pull request #709 from lian/master
677
- * Merge pull request #711 from julik/master
678
- * Merge pull request #712 from yakara-ltd/pumactl-default-config
679
- * Merge pull request #715 from RobotJiang/master
680
- * Merge pull request #725 from rwz/master
681
- * Merge pull request #726 from strenuus/handle-client-disconnect
682
- * Merge pull request #729 from allaire/patch-1
683
- * Merge pull request #730 from iamjarvo/container-infrastructure
1035
+ * Merge pull request [#686] from jjb/patch-2
1036
+ * Merge pull request [#693] from rob-murray/update-example-config
1037
+ * Merge pull request [#697] from spk/tests-bind-on-rackup-file
1038
+ * Merge pull request [#699] from deees/fix/require_rack_builder
1039
+ * Merge pull request [#701] from deepj/master
1040
+ * Merge pull request [#702] from Jimdo/thread-reaping
1041
+ * Merge pull request [#703] from deepj/travis
1042
+ * Merge pull request [#704] from grega/master
1043
+ * Merge pull request [#709] from lian/master
1044
+ * Merge pull request [#711] from julik/master
1045
+ * Merge pull request [#712] from yakara-ltd/pumactl-default-config
1046
+ * Merge pull request [#715] from RobotJiang/master
1047
+ * Merge pull request [#725] from rwz/master
1048
+ * Merge pull request [#726] from strenuus/handle-client-disconnect
1049
+ * Merge pull request [#729] from allaire/patch-1
1050
+ * Merge pull request [#730] from iamjarvo/container-infrastructure
684
1051
 
685
1052
  ## 2.11.3 / 2015-05-18
686
1053
 
687
1054
  * 5 bug fixes:
688
- * Be sure to unlink tempfiles after a request. Fixes #690
689
- * Coerce the key to a string before checking. (thar be symbols). Fixes #684
1055
+ * Be sure to unlink tempfiles after a request. Fixes [#690]
1056
+ * Coerce the key to a string before checking. (thar be symbols). Fixes [#684]
690
1057
  * Fix hang on bad SSL handshake
691
1058
  * Remove `enable_SSLv3` support from JRuby
692
1059
 
693
1060
  * 1 PR merged:
694
- * Merge pull request #698 from looker/hang-handshake
1061
+ * Merge pull request [#698] from looker/hang-handshake
695
1062
 
696
1063
  ## 2.11.2 / 2015-04-11
697
1064
 
@@ -700,7 +1067,7 @@ The "clearly I don't have enough tests for the config" release.
700
1067
  * Add shutdown_debug config option
701
1068
 
702
1069
  * 4 bug fixes:
703
- * Fix the Config constants not being available in the DSL. Fixes #683
1070
+ * Fix the Config constants not being available in the DSL. Fixes [#683]
704
1071
  * Ignore multiple port declarations
705
1072
  * Proper 'Connection' header handling compatible with HTTP 1.[01] protocols
706
1073
  * Use "Puma" instead of "puma" to reporting to New Relic
@@ -709,55 +1076,55 @@ The "clearly I don't have enough tests for the config" release.
709
1076
  * Add Gitter badge.
710
1077
 
711
1078
  * 6 PRs merged:
712
- * Merge pull request #657 from schneems/schneems/puma-once-port
713
- * Merge pull request #658 from Tomohiro/newrelic-dispatcher-default-update
714
- * Merge pull request #662 from basecrm/connection-compatibility
715
- * Merge pull request #664 from fxposter/on-worker-fork
716
- * Merge pull request #667 from JuanitoFatas/doc/gemspec
717
- * Merge pull request #672 from chulkilee/refactor
1079
+ * Merge pull request [#657] from schneems/schneems/puma-once-port
1080
+ * Merge pull request [#658] from Tomohiro/newrelic-dispatcher-default-update
1081
+ * Merge pull request [#662] from basecrm/connection-compatibility
1082
+ * Merge pull request [#664] from fxposter/on-worker-fork
1083
+ * Merge pull request [#667] from JuanitoFatas/doc/gemspec
1084
+ * Merge pull request [#672] from chulkilee/refactor
718
1085
 
719
1086
  ## 2.11.1 / 2015-02-11
720
1087
 
721
1088
  * 2 bug fixes:
722
1089
  * Avoid crash in strange restart conditions
723
- * Inject the GEM_HOME that bundler into puma-wild's env. Fixes #653
1090
+ * Inject the GEM_HOME that bundler into puma-wild's env. Fixes [#653]
724
1091
 
725
1092
  * 2 PRs merged:
726
- * Merge pull request #644 from bpaquet/master
727
- * Merge pull request #646 from mkonecny/master
1093
+ * Merge pull request [#644] from bpaquet/master
1094
+ * Merge pull request [#646] from mkonecny/master
728
1095
 
729
1096
  ## 2.11.0 / 2015-01-20
730
1097
 
731
1098
  * 9 bug fixes:
732
- * Add mode as an additional bind option to unix sockets. Fixes #630
1099
+ * Add mode as an additional bind option to unix sockets. Fixes [#630]
733
1100
  * Advertise HTTPS properly after a hot restart
734
1101
  * Don't write lowlevel_error_handler to state
735
1102
  * Fix phased restart with stuck requests
736
- * Handle spaces in the path properly. Fixes #622
737
- * Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes #583
738
- * Skip device number checking on jruby. Fixes #586
1103
+ * Handle spaces in the path properly. Fixes [#622]
1104
+ * Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes [#583]
1105
+ * Skip device number checking on jruby. Fixes [#586]
739
1106
  * Update extconf.rb to compile correctly on OS X
740
- * redirect io right after daemonizing so startup errors are shown. Fixes #359
1107
+ * redirect io right after daemonizing so startup errors are shown. Fixes [#359]
741
1108
 
742
1109
  * 6 minor features:
743
1110
  * Add a configuration option that prevents puma from queueing requests.
744
1111
  * Add reload_worker_directory
745
1112
  * Add the ability to pass environment variables to the init script (for Jungle).
746
- * Add the proctitle tag to the worker. Fixes #633
1113
+ * Add the proctitle tag to the worker. Fixes [#633]
747
1114
  * Infer a proctitle tag based on the directory
748
1115
  * Update lowlevel error message to be more meaningful.
749
1116
 
750
1117
  * 10 PRs merged:
751
- * Merge pull request #478 from rubencaro/master
752
- * Merge pull request #610 from kwilczynski/master
753
- * Merge pull request #611 from jasonl/better-lowlevel-message
754
- * Merge pull request #616 from jc00ke/master
755
- * Merge pull request #623 from raldred/patch-1
756
- * Merge pull request #628 from rdpoor/master
757
- * Merge pull request #634 from deepj/master
758
- * Merge pull request #637 from raskhadafi/patch-1
759
- * Merge pull request #639 from ebeigarts/fix-phased-restarts
760
- * Merge pull request #640 from codehotter/issue-612-dependent-requests-deadlock
1118
+ * Merge pull request [#478] from rubencaro/master
1119
+ * Merge pull request [#610] from kwilczynski/master
1120
+ * Merge pull request [#611] from jasonl/better-lowlevel-message
1121
+ * Merge pull request [#616] from jc00ke/master
1122
+ * Merge pull request [#623] from raldred/patch-1
1123
+ * Merge pull request [#628] from rdpoor/master
1124
+ * Merge pull request [#634] from deepj/master
1125
+ * Merge pull request [#637] from raskhadafi/patch-1
1126
+ * Merge pull request [#639] from ebeigarts/fix-phased-restarts
1127
+ * Merge pull request [#640] from codehotter/issue-612-dependent-requests-deadlock
761
1128
 
762
1129
  ## 2.10.2 / 2014-11-26
763
1130
 
@@ -787,9 +1154,9 @@ The "clearly I don't have enough tests for the config" release.
787
1154
 
788
1155
  * 5 bug fixes:
789
1156
  * Clean out a threads local data before doing work
790
- * Disable SSLv3. Fixes #591
1157
+ * Disable SSLv3. Fixes [#591]
791
1158
  * First change the directory to use the correct Gemfile.
792
- * Only use config.ru binds if specified. Fixes #606
1159
+ * Only use config.ru binds if specified. Fixes [#606]
793
1160
  * Strongish cipher suite with FS support for some browsers
794
1161
 
795
1162
  * 2 doc changes:
@@ -797,20 +1164,20 @@ The "clearly I don't have enough tests for the config" release.
797
1164
  * fix typo in README.md
798
1165
 
799
1166
  * 9 Merged PRs:
800
- * Merge pull request #560 from raskhadafi/prune_bundler-bug
801
- * Merge pull request #566 from sheltond/master
802
- * Merge pull request #593 from andruby/patch-1
803
- * Merge pull request #594 from hassox/thread-cleanliness
804
- * Merge pull request #596 from burningTyger/patch-1
805
- * Merge pull request #601 from sorentwo/friendly-umask
806
- * Merge pull request #602 from 1334/patch-1
807
- * Merge pull request #608 from Gu1/master
808
- * Merge remote-tracking branch 'origin/pr/538'
1167
+ * Merge pull request [#560] from raskhadafi/prune_bundler-bug
1168
+ * Merge pull request [#566] from sheltond/master
1169
+ * Merge pull request [#593] from andruby/patch-1
1170
+ * Merge pull request [#594] from hassox/thread-cleanliness
1171
+ * Merge pull request [#596] from burningTyger/patch-1
1172
+ * Merge pull request [#601] from sorentwo/friendly-umask
1173
+ * Merge pull request [#602] from 1334/patch-1
1174
+ * Merge pull request [#608] from Gu1/master
1175
+ * Merge pull request [#538] from memiux/?
809
1176
 
810
1177
  ## 2.9.2 / 2014-10-25
811
1178
 
812
1179
  * 8 bug fixes:
813
- * Fix puma-wild handling a restart properly. Fixes #550
1180
+ * Fix puma-wild handling a restart properly. Fixes [#550]
814
1181
  * JRuby SSL POODLE update
815
1182
  * Keep deprecated features warnings
816
1183
  * Log the current time when Puma shuts down.
@@ -820,24 +1187,24 @@ The "clearly I don't have enough tests for the config" release.
820
1187
  * Fixing sexist error messages
821
1188
 
822
1189
  * 6 PRs merged:
823
- * Merge pull request #549 from bsnape/log-shutdown-time
824
- * Merge pull request #553 from lowjoel/master
825
- * Merge pull request #568 from mariuz/patch-1
826
- * Merge pull request #578 from danielbuechele/patch-1
827
- * Merge pull request #581 from alexch/slightly-better-logging
828
- * Merge pull request #590 from looker/jruby_disable_sslv3
1190
+ * Merge pull request [#549] from bsnape/log-shutdown-time
1191
+ * Merge pull request [#553] from lowjoel/master
1192
+ * Merge pull request [#568] from mariuz/patch-1
1193
+ * Merge pull request [#578] from danielbuechele/patch-1
1194
+ * Merge pull request [#581] from alexch/slightly-better-logging
1195
+ * Merge pull request [#590] from looker/jruby_disable_sslv3
829
1196
 
830
1197
  ## 2.9.1 / 2014-09-05
831
1198
 
832
1199
  * 4 bug fixes:
833
1200
  * Cleanup the SSL related structures properly, fixes memory leak
834
1201
  * Fix thread spawning edge case.
835
- * Force a worker check after a worker boots, don't wait 5sec. Fixes #574
1202
+ * Force a worker check after a worker boots, don't wait 5sec. Fixes [#574]
836
1203
  * Implement SIGHUP for logs reopening
837
1204
 
838
1205
  * 2 PRs merged:
839
- * Merge pull request #561 from theoldreader/sighup
840
- * Merge pull request #570 from havenwood/spawn-thread-edge-case
1206
+ * Merge pull request [#561] from theoldreader/sighup
1207
+ * Merge pull request [#570] from havenwood/spawn-thread-edge-case
841
1208
 
842
1209
  ## 2.9.0 / 2014-07-12
843
1210
 
@@ -856,12 +1223,12 @@ The "clearly I don't have enough tests for the config" release.
856
1223
  * Update README.md
857
1224
 
858
1225
  * 6 PRs merged:
859
- * Merge pull request #520 from misfo/patch-2
860
- * Merge pull request #530 from looker/jruby-ssl
861
- * Merge pull request #537 from vlmonk/patch-1
862
- * Merge pull request #540 from allaire/patch-1
863
- * Merge pull request #544 from chulkilee/bsd-3-clause
864
- * Merge pull request #551 from jcxplorer/patch-1
1226
+ * Merge pull request [#520] from misfo/patch-2
1227
+ * Merge pull request [#530] from looker/jruby-ssl
1228
+ * Merge pull request [#537] from vlmonk/patch-1
1229
+ * Merge pull request [#540] from allaire/patch-1
1230
+ * Merge pull request [#544] from chulkilee/bsd-3-clause
1231
+ * Merge pull request [#551] from jcxplorer/patch-1
865
1232
 
866
1233
  ## 2.8.2 / 2014-04-12
867
1234
 
@@ -878,17 +1245,17 @@ The "clearly I don't have enough tests for the config" release.
878
1245
  * allow changing of worker_timeout in config file
879
1246
 
880
1247
  * 11 PRs merged:
881
- * Merge pull request #487 from ckuttruff/master
882
- * Merge pull request #492 from ckuttruff/master
883
- * Merge pull request #493 from alepore/config_tag
884
- * Merge pull request #503 from mariuz/patch-1
885
- * Merge pull request #505 from sammcj/patch-1
886
- * Merge pull request #506 from FlavourSys/config_worker_timeout
887
- * Merge pull request #510 from momer/rescue-block-handle-servers-fix
888
- * Merge pull request #511 from macool/patch-1
889
- * Merge pull request #514 from edogawaconan/refactor_env
890
- * Merge pull request #517 from misfo/patch-1
891
- * Merge pull request #518 from LongMan/master
1248
+ * Merge pull request [#487] from ckuttruff/master
1249
+ * Merge pull request [#492] from ckuttruff/master
1250
+ * Merge pull request [#493] from alepore/config_tag
1251
+ * Merge pull request [#503] from mariuz/patch-1
1252
+ * Merge pull request [#505] from sammcj/patch-1
1253
+ * Merge pull request [#506] from FlavourSys/config_worker_timeout
1254
+ * Merge pull request [#510] from momer/rescue-block-handle-servers-fix
1255
+ * Merge pull request [#511] from macool/patch-1
1256
+ * Merge pull request [#514] from edogawaconan/refactor_env
1257
+ * Merge pull request [#517] from misfo/patch-1
1258
+ * Merge pull request [#518] from LongMan/master
892
1259
 
893
1260
  ## 2.8.1 / 2014-03-06
894
1261
 
@@ -900,60 +1267,59 @@ The "clearly I don't have enough tests for the config" release.
900
1267
  * Start the deployment doc
901
1268
 
902
1269
  * 6 PRs merged:
903
- * Merge pull request #471 from arthurnn/fix_test
904
- * Merge pull request #485 from joneslee85/patch-9
905
- * Merge pull request #486 from joshwlewis/patch-1
906
- * Merge pull request #490 from tobinibot/patch-1
907
- * Merge pull request #491 from brianknight10/clarify-no-config
1270
+ * Merge pull request [#471] from arthurnn/fix_test
1271
+ * Merge pull request [#485] from joneslee85/patch-9
1272
+ * Merge pull request [#486] from joshwlewis/patch-1
1273
+ * Merge pull request [#490] from tobinibot/patch-1
1274
+ * Merge pull request [#491] from brianknight10/clarify-no-config
908
1275
 
909
1276
  ## 2.8.0 / 2014-02-28
910
1277
 
911
1278
  * 8 minor features:
912
- * Add ability to autoload a config file. Fixes #438
913
- * Add ability to detect and terminate hung workers. Fixes #333
1279
+ * Add ability to autoload a config file. Fixes [#438]
1280
+ * Add ability to detect and terminate hung workers. Fixes [#333]
914
1281
  * Add booted_workers to stats response
915
1282
  * Add config to customize the default error message
916
1283
  * Add prune_bundler option
917
- * Add worker indexes, expose them via on_worker_boot. Fixes #440
1284
+ * Add worker indexes, expose them via on_worker_boot. Fixes [#440]
918
1285
  * Add pretty process name
919
1286
  * Show the ruby version in use
920
1287
 
921
1288
  * 7 bug fixes:
922
1289
  * Added 408 status on timeout.
923
- * Be more hostile with sockets that write block. Fixes #449
924
- * Expect at_exit to exclusively remove the pidfile. Fixes #444
925
- * Expose latency and listen backlog via bind query. Fixes #370
926
- * JRuby raises IOError if the socket is there. Fixes #377
927
- * Process requests fairly. Fixes #406
928
- * Rescue SystemCallError as well. Fixes #425
1290
+ * Be more hostile with sockets that write block. Fixes [#449]
1291
+ * Expect at_exit to exclusively remove the pidfile. Fixes [#444]
1292
+ * Expose latency and listen backlog via bind query. Fixes [#370]
1293
+ * JRuby raises IOError if the socket is there. Fixes [#377]
1294
+ * Process requests fairly. Fixes [#406]
1295
+ * Rescue SystemCallError as well. Fixes [#425]
929
1296
 
930
1297
  * 4 doc changes:
931
1298
  * Add 2.1.0 to the matrix
932
1299
  * Add Code Climate badge to README
933
1300
  * Create signals.md
934
- * Set the license to BSD. Fixes #432
1301
+ * Set the license to BSD. Fixes [#432]
935
1302
 
936
1303
  * 14 PRs merged:
937
- * Merge pull request #428 from alexeyfrank/capistrano_default_hooks
938
- * Merge pull request #429 from namusyaka/revert-const_defined
939
- * Merge pull request #431 from mrb/master
940
- * Merge pull request #433 from alepore/process-name
941
- * Merge pull request #437 from ibrahima/master
942
- * Merge pull request #446 from sudara/master
943
- * Merge pull request #451 from pwiebe/status_408
944
- * Merge pull request #453 from joevandyk/patch-1
945
- * Merge pull request #470 from arthurnn/fix_458
946
- * Merge pull request #472 from rubencaro/master
947
- * Merge pull request #480 from jjb/docs-on-running-test-suite
948
- * Merge pull request #481 from schneems/master
949
- * Merge pull request #482 from prathamesh-sonpatki/signals-doc-cleanup
950
- * Merge pull request #483 from YotpoLtd/master
1304
+ * Merge pull request [#428] from alexeyfrank/capistrano_default_hooks
1305
+ * Merge pull request [#429] from namusyaka/revert-const_defined
1306
+ * Merge pull request [#431] from mrb/master
1307
+ * Merge pull request [#433] from alepore/process-name
1308
+ * Merge pull request [#437] from ibrahima/master
1309
+ * Merge pull request [#446] from sudara/master
1310
+ * Merge pull request [#451] from pwiebe/status_408
1311
+ * Merge pull request [#453] from joevandyk/patch-1
1312
+ * Merge pull request [#470] from arthurnn/fix_458
1313
+ * Merge pull request [#472] from rubencaro/master
1314
+ * Merge pull request [#480] from jjb/docs-on-running-test-suite
1315
+ * Merge pull request [#481] from schneems/master
1316
+ * Merge pull request [#482] from prathamesh-sonpatki/signals-doc-cleanup
1317
+ * Merge pull request [#483] from YotpoLtd/master
951
1318
 
952
1319
  ## 2.7.1 / 2013-12-05
953
1320
 
954
1321
  * 1 bug fix:
955
-
956
- * Keep STDOUT/STDERR the right mode. Fixes #422
1322
+ * Keep STDOUT/STDERR the right mode. Fixes [#422]
957
1323
 
958
1324
  ## 2.7.0 / 2013-12-03
959
1325
 
@@ -988,7 +1354,6 @@ The "clearly I don't have enough tests for the config" release.
988
1354
  ## 2.5.1 / 2013-08-13
989
1355
 
990
1356
  * 2 bug fixes:
991
-
992
1357
  * Keep jruby daemon mode from retrying on a hot restart
993
1358
  * Extract version from const.rb in gemspec
994
1359
 
@@ -1030,30 +1395,28 @@ The "clearly I don't have enough tests for the config" release.
1030
1395
 
1031
1396
  * 10 bug fixes:
1032
1397
 
1033
- * Be sure to only delete the pid in the master. Fixes #334
1398
+ * Be sure to only delete the pid in the master. Fixes [#334]
1034
1399
  * Call out -C/--config flags
1035
- * Change parser symbol names to avoid clash. Fixes #179
1400
+ * Change parser symbol names to avoid clash. Fixes [#179]
1036
1401
  * Convert thread pool sizes to integers
1037
1402
  * Detect when the jruby daemon child doesn't start properly
1038
1403
  * Fix typo in CLI help
1039
- * Improve the logging output when hijack is used. Fixes #332
1404
+ * Improve the logging output when hijack is used. Fixes [#332]
1040
1405
  * Remove unnecessary thread pool size conversions
1041
- * Setup :worker_boot as an Array. Fixes #317
1042
- * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes #309
1406
+ * Setup :worker_boot as an Array. Fixes [#317]
1407
+ * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes [#309]
1043
1408
 
1044
1409
 
1045
1410
  ## 2.3.2 / 2013-07-08
1046
1411
 
1047
1412
  * 1 bug fix:
1048
-
1049
1413
  * Move starting control server to after daemonization.
1050
1414
 
1051
1415
  ## 2.3.1 / 2013-07-06
1052
1416
 
1053
1417
  * 2 bug fixes:
1054
-
1055
1418
  * Include the right files in the Manifest.
1056
- * Disable inheriting connections on restart on windows. Fixes #166
1419
+ * Disable inheriting connections on restart on windows. Fixes [#166]
1057
1420
 
1058
1421
  * 1 doc change:
1059
1422
  * Better document some platform constraints
@@ -1061,47 +1424,39 @@ The "clearly I don't have enough tests for the config" release.
1061
1424
  ## 2.3.0 / 2013-07-05
1062
1425
 
1063
1426
  * 1 major bug fix:
1064
-
1065
1427
  * Stabilize control server, add support in cluster mode
1066
1428
 
1067
1429
  * 5 minor bug fixes:
1068
-
1069
1430
  * Add ability to cleanup stale unix sockets
1070
- * Check status data better. Fixes #292
1071
- * Convert raw IO errors to ConnectionError. Fixes #274
1072
- * Fix sending Content-Type and Content-Length for no body status. Fixes #304
1073
- * Pass state path through to `pumactl start`. Fixes #287
1431
+ * Check status data better. Fixes [#292]
1432
+ * Convert raw IO errors to ConnectionError. Fixes [#274]
1433
+ * Fix sending Content-Type and Content-Length for no body status. Fixes [#304]
1434
+ * Pass state path through to `pumactl start`. Fixes [#287]
1074
1435
 
1075
1436
  * 2 internal changes:
1076
-
1077
1437
  * Refactored modes into seperate classes that CLI uses
1078
1438
  * Changed CLI to take an Events object instead of stdout/stderr (API change)
1079
1439
 
1080
1440
  ## 2.2.2 / 2013-07-02
1081
1441
 
1082
1442
  * 1 bug fix:
1083
-
1084
1443
  * Fix restart_command in the config
1085
1444
 
1086
1445
  ## 2.2.1 / 2013-07-02
1087
1446
 
1088
1447
  * 1 minor feature:
1089
-
1090
1448
  * Introduce preload flag
1091
1449
 
1092
1450
  * 1 bug fix:
1093
-
1094
1451
  * Pass custom restart command in JRuby
1095
1452
 
1096
1453
  ## 2.2.0 / 2013-07-01
1097
1454
 
1098
1455
  * 1 major feature:
1099
-
1100
1456
  * Add ability to preload rack app
1101
1457
 
1102
1458
  * 2 minor bugfixes:
1103
-
1104
- * Don't leak info when not in development. Fixes #256
1459
+ * Don't leak info when not in development. Fixes [#256]
1105
1460
  * Load the app, then bind the ports
1106
1461
 
1107
1462
  ## 2.1.1 / 2013-06-20
@@ -1109,7 +1464,7 @@ The "clearly I don't have enough tests for the config" release.
1109
1464
  * 2 minor bug fixes:
1110
1465
 
1111
1466
  * Fix daemonization on jruby
1112
- * Load the application before daemonizing. Fixes #285
1467
+ * Load the application before daemonizing. Fixes [#285]
1113
1468
 
1114
1469
  ## 2.1.0 / 2013-06-18
1115
1470
 
@@ -1119,7 +1474,7 @@ The "clearly I don't have enough tests for the config" release.
1119
1474
  * Support systemd socket activation
1120
1475
 
1121
1476
  * 15 bug fixes:
1122
- * Deal with pipes closing while stopping. Fixes #270
1477
+ * Deal with pipes closing while stopping. Fixes [#270]
1123
1478
  * Error out early if there is no app configured
1124
1479
  * Handle ConnectionError rather than the lowlevel exceptions
1125
1480
  * tune with `-C` config file and `on_worker_boot`
@@ -1128,11 +1483,11 @@ The "clearly I don't have enough tests for the config" release.
1128
1483
  * Make sure to use bytesize instead of size (MiniSSL write)
1129
1484
  * Fix an error in puma-manager.conf
1130
1485
  * fix: stop leaking sockets on restart (affects ruby 1.9.3 or before)
1131
- * Ignore errors on the cross-thread pipe. Fixes #246
1486
+ * Ignore errors on the cross-thread pipe. Fixes [#246]
1132
1487
  * Ignore errors while uncorking the socket (it might already be closed)
1133
- * Ignore the body on a HEAD request. Fixes #278
1134
- * Handle all engine data when possible. Fixes #251.
1135
- * Handle all read exceptions properly. Fixes #252
1488
+ * Ignore the body on a HEAD request. Fixes [#278]
1489
+ * Handle all engine data when possible. Fixes [#251].
1490
+ * Handle all read exceptions properly. Fixes [#252]
1136
1491
  * Handle errors from the server better
1137
1492
 
1138
1493
  * 3 doc changes:
@@ -1143,7 +1498,6 @@ The "clearly I don't have enough tests for the config" release.
1143
1498
  ## 2.0.1 / 2013-04-30
1144
1499
 
1145
1500
  * 1 bug fix:
1146
-
1147
1501
  * Fix not starting on JRuby properly
1148
1502
 
1149
1503
  ## 2.0.0 / 2013-04-29
@@ -1155,8 +1509,8 @@ RailsConf 2013 edition!
1155
1509
  * Minor doc fixes in the README.md, Capistrano section
1156
1510
 
1157
1511
  * 2 bug fixes:
1158
- * Fix reading RACK_ENV properly. Fixes #234
1159
- * Make cap recipe handle tmp/sockets; fixes #228
1512
+ * Fix reading RACK_ENV properly. Fixes [#234]
1513
+ * Make cap recipe handle tmp/sockets; fixes [#228]
1160
1514
 
1161
1515
  * 3 minor changes:
1162
1516
  * Fix capistrano recipe
@@ -1166,7 +1520,6 @@ RailsConf 2013 edition!
1166
1520
  ## 2.0.0.b7 / 2013-03-18
1167
1521
 
1168
1522
  * 5 minor enhancements:
1169
-
1170
1523
  * Add -q option for :start
1171
1524
  * Add -V, --version
1172
1525
  * Add default Rack handler helper
@@ -1174,30 +1527,27 @@ RailsConf 2013 edition!
1174
1527
  * Set worker directory from configuration file
1175
1528
 
1176
1529
  * 12 bug fixes:
1177
-
1178
- * Close the binder in the right place. Fixes #192
1179
- * Handle early term in workers. Fixes #206
1530
+ * Close the binder in the right place. Fixes [#192]
1531
+ * Handle early term in workers. Fixes [#206]
1180
1532
  * Make sure that the default port is 80 when the request doesn't include HTTP_X_FORWARDED_PROTO.
1181
1533
  * Prevent Errno::EBADF errors on restart when running ruby 2.0
1182
1534
  * Record the proper @master_pid
1183
1535
  * Respect the header HTTP_X_FORWARDED_PROTO when the host doesn't include a port number.
1184
1536
  * Retry EAGAIN/EWOULDBLOCK during syswrite
1185
- * Run exec properly to restart. Fixes #154
1537
+ * Run exec properly to restart. Fixes [#154]
1186
1538
  * Set Rack run_once to false
1187
- * Syncronize all access to @timeouts. Fixes #208
1188
- * Write out the state post-daemonize. Fixes #189
1539
+ * Syncronize all access to @timeouts. Fixes [#208]
1540
+ * Write out the state post-daemonize. Fixes [#189]
1189
1541
  * Prevent crash when all workers are gone
1190
1542
 
1191
1543
  ## 2.0.0.b6 / 2013-02-06
1192
1544
 
1193
1545
  * 2 minor enhancements:
1194
-
1195
1546
  * Add hook for running when a worker boots
1196
1547
  * Advertise the Configuration object for apps to use.
1197
1548
 
1198
1549
  * 1 bug fix:
1199
-
1200
- * Change directory in working during upgrade. Fixes #185
1550
+ * Change directory in working during upgrade. Fixes [#185]
1201
1551
 
1202
1552
  ## 2.0.0.b5 / 2013-02-05
1203
1553
 
@@ -1210,16 +1560,16 @@ RailsConf 2013 edition!
1210
1560
  * Add config file option to specify the restart command
1211
1561
 
1212
1562
  * 5 bug fixes:
1213
- * Cleanup pipes properly. Fixes #182
1214
- * Daemonize earlier so that we don't lose app threads. Fixes #183
1215
- * Drain the notification pipe. Fixes #176, thanks @cryo28
1216
- * Move write_pid to after we daemonize. Fixes #180
1563
+ * Cleanup pipes properly. Fixes [#182]
1564
+ * Daemonize earlier so that we don't lose app threads. Fixes [#183]
1565
+ * Drain the notification pipe. Fixes [#176], thanks @cryo28
1566
+ * Move write_pid to after we daemonize. Fixes [#180]
1217
1567
  * Redirect IO properly and emit message for checkpointing
1218
1568
 
1219
1569
  ## 2.0.0.b4 / 2012-12-12
1220
1570
 
1221
1571
  * 4 bug fixes:
1222
- * Properly check #syswrite's value for variable sized buffers. Fixes #170
1572
+ * Properly check #syswrite's value for variable sized buffers. Fixes [#170]
1223
1573
  * Shutdown status server properly
1224
1574
  * Handle char vs byte and mixing syswrite with write properly
1225
1575
  * made MiniSSL validate key/cert file existence
@@ -1239,12 +1589,12 @@ RailsConf 2013 edition!
1239
1589
  * Add options to daemonize puma
1240
1590
 
1241
1591
  * 7 bug fixes:
1242
- * Reset the IOBuffer properly. Fixes #148
1592
+ * Reset the IOBuffer properly. Fixes [#148]
1243
1593
  * Shutdown gracefully on JRuby with Ctrl-C
1244
- * Various methods to get newrelic to start. Fixes #128
1594
+ * Various methods to get newrelic to start. Fixes [#128]
1245
1595
  * fixing syntax error at capistrano recipe
1246
1596
  * Force ECONNRESET when read returns nil
1247
- * Be sure to empty the drain the todo before shutting down. Fixes #155
1597
+ * Be sure to empty the drain the todo before shutting down. Fixes [#155]
1248
1598
  * allow for alternate locations for status app
1249
1599
 
1250
1600
  ## 2.0.0.b1 / 2012-09-11
@@ -1296,7 +1646,7 @@ be added back in a future date when a java Puma::MiniSSL is added.
1296
1646
 
1297
1647
  * 6 bug fixes:
1298
1648
  * Define RSTRING_NOT_MODIFIED for Rubinius
1299
- * Convert status to integer. Fixes #123
1649
+ * Convert status to integer. Fixes [#123]
1300
1650
  * Delete pidfile when stopping the server
1301
1651
  * Allow compilation with -Werror=format-security option
1302
1652
  * Fix wrong HTTP version for a HTTP/1.0 request
@@ -1304,7 +1654,7 @@ be added back in a future date when a java Puma::MiniSSL is added.
1304
1654
 
1305
1655
  * 3 minor features:
1306
1656
  * Added support for setting RACK_ENV via the CLI, config file, and rack app
1307
- * Allow Server#run to run sync. Fixes #111
1657
+ * Allow Server#run to run sync. Fixes [#111]
1308
1658
  * Puma can now run on windows
1309
1659
 
1310
1660
  ## 1.4.0 / 2012-06-04
@@ -1319,7 +1669,7 @@ be added back in a future date when a java Puma::MiniSSL is added.
1319
1669
 
1320
1670
  * 2 bug fixes:
1321
1671
  * use #bytesize instead of #length for Content-Length header
1322
- * Use StringIO properly. Fixes #98
1672
+ * Use StringIO properly. Fixes [#98]
1323
1673
 
1324
1674
  ## 1.3.0 / 2012-05-08
1325
1675
 
@@ -1328,10 +1678,10 @@ be added back in a future date when a java Puma::MiniSSL is added.
1328
1678
  * Add -I option to specify $LOAD_PATH directories
1329
1679
 
1330
1680
  * 4 bug fixes:
1331
- * Don't join the server thread inside the signal handle. Fixes #94
1681
+ * Don't join the server thread inside the signal handle. Fixes [#94]
1332
1682
  * Make NullIO#read mimic IO#read
1333
- * Only stop the status server if it's started. Fixes #84
1334
- * Set RACK_ENV early in cli also. Fixes #78
1683
+ * Only stop the status server if it's started. Fixes [#84]
1684
+ * Set RACK_ENV early in cli also. Fixes [#78]
1335
1685
 
1336
1686
  * 1 new contributor:
1337
1687
  * Jesse Cooke
@@ -1339,59 +1689,683 @@ be added back in a future date when a java Puma::MiniSSL is added.
1339
1689
  ## 1.2.2 / 2012-04-28
1340
1690
 
1341
1691
  * 4 bug fixes:
1342
-
1343
1692
  * Report a lowlevel error to stderr
1344
1693
  * Set a fallback SERVER_NAME and SERVER_PORT
1345
- * Keep the encoding of the body correct. Fixes #79
1694
+ * Keep the encoding of the body correct. Fixes [#79]
1346
1695
  * show error.to_s along with backtrace for low-level error
1347
1696
 
1348
1697
  ## 1.2.1 / 2012-04-11
1349
1698
 
1350
- 1 bug fix:
1351
-
1352
- * Fix rack.url_scheme for SSL servers. Fixes #65
1699
+ * 1 bug fix:
1700
+ * Fix rack.url_scheme for SSL servers. Fixes [#65]
1353
1701
 
1354
1702
  ## 1.2.0 / 2012-04-11
1355
1703
 
1356
- 1 major feature:
1357
-
1358
- * When possible, the internal restart does a "hot restart" meaning
1359
- the server sockets remains open, so no connections are lost.
1360
-
1361
- 1 minor feature:
1362
-
1363
- * More helpful fallback error message
1364
-
1365
- 6 bug fixes:
1704
+ * 1 major feature:
1705
+ * When possible, the internal restart does a "hot restart" meaning
1706
+ the server sockets remains open, so no connections are lost.
1366
1707
 
1367
- * Pass the proper args to unknown_error. Fixes #54, #58
1368
- * Stop the control server before restarting. Fixes #61
1369
- * Fix reporting https only on a true SSL connection
1370
- * Set the default content type to 'text/plain'. Fixes #63
1371
- * Use REUSEADDR. Fixes #60
1372
- * Shutdown gracefully on SIGTERM. Fixes #53
1708
+ * 1 minor feature:
1709
+ * More helpful fallback error message
1373
1710
 
1374
- 2 new contributors:
1711
+ * 6 bug fixes:
1712
+ * Pass the proper args to unknown_error. Fixes [#54], [#58]
1713
+ * Stop the control server before restarting. Fixes [#61]
1714
+ * Fix reporting https only on a true SSL connection
1715
+ * Set the default content type to 'text/plain'. Fixes [#63]
1716
+ * Use REUSEADDR. Fixes [#60]
1717
+ * Shutdown gracefully on SIGTERM. Fixes [#53]
1375
1718
 
1376
- * Seamus Abshere
1377
- * Steve Richert
1719
+ * 2 new contributors:
1720
+ * Seamus Abshere
1721
+ * Steve Richert
1378
1722
 
1379
1723
  ## 1.1.1 / 2012-03-30
1380
1724
 
1381
- 1 bugfix:
1382
-
1383
- * Include puma/compat.rb in the gem (oops!)
1725
+ * 1 bugfix:
1726
+ * Include puma/compat.rb in the gem (oops!)
1384
1727
 
1385
1728
  ## 1.1.0 / 2012-03-30
1386
1729
 
1387
- 1 bugfix:
1388
-
1389
- * Make sure that the unix socket has the perms 0777 by default
1390
-
1391
- 1 minor feature:
1730
+ * 1 bugfix:
1731
+ * Make sure that the unix socket has the perms 0777 by default
1392
1732
 
1393
- * Add umask param to the unix:// bind to set the umask
1733
+ * 1 minor feature:
1734
+ * Add umask param to the unix:// bind to set the umask
1394
1735
 
1395
1736
  ## 1.0.0 / 2012-03-29
1396
1737
 
1397
1738
  * Released!
1739
+
1740
+ ## Ignore - this is for maintainers to copy-paste during release
1741
+ ## Master
1742
+
1743
+ * Features
1744
+ * Your feature goes here <Most recent on the top, like GitHub> (#Github Number)
1745
+
1746
+ * Bugfixes
1747
+ * Your bugfix goes here <Most recent on the top, like GitHub> (#Github Number)
1748
+
1749
+ [#2564]:https://github.com/puma/puma/pull/2564 "PR by @MSP-Greg, merged 2021-04-24"
1750
+ [#2526]:https://github.com/puma/puma/issues/2526 "Issue by @nerdrew, closed 2021-04-24"
1751
+ [#2559]:https://github.com/puma/puma/pull/2559 "PR by @ylecuyer, merged 2021-03-11"
1752
+ [#2528]:https://github.com/puma/puma/issues/2528 "Issue by @cjlarose, closed 2021-03-11"
1753
+ [#2565]:https://github.com/puma/puma/pull/2565 "PR by @CGA1123, merged 2021-03-09"
1754
+ [#2534]:https://github.com/puma/puma/issues/2534 "Issue by @nateberkopec, closed 2021-03-09"
1755
+ [#2563]:https://github.com/puma/puma/pull/2563 "PR by @MSP-Greg, merged 2021-03-06"
1756
+ [#2504]:https://github.com/puma/puma/issues/2504 "Issue by @fsateler, closed 2021-03-06"
1757
+ [#2591]:https://github.com/puma/puma/pull/2591 "PR by @MSP-Greg, merged 2021-05-05"
1758
+ [#2572]:https://github.com/puma/puma/issues/2572 "Issue by @josefbilendo, closed 2021-05-05"
1759
+ [#2613]:https://github.com/puma/puma/pull/2613 "PR by @smcgivern, merged 2021-04-27"
1760
+ [#2605]:https://github.com/puma/puma/pull/2605 "PR by @pascalbetz, merged 2021-04-26"
1761
+ [#2584]:https://github.com/puma/puma/issues/2584 "Issue by @kaorihinata, closed 2021-04-26"
1762
+ [#2607]:https://github.com/puma/puma/pull/2607 "PR by @calvinxiao, merged 2021-04-23"
1763
+ [#2552]:https://github.com/puma/puma/issues/2552 "Issue by @feliperaul, opened 2021-02-09"
1764
+ [#2606]:https://github.com/puma/puma/pull/2606 "PR by @wjordan, merged 2021-04-20"
1765
+ [#2574]:https://github.com/puma/puma/issues/2574 "Issue by @darkhelmet, closed 2021-04-20"
1766
+ [#2567]:https://github.com/puma/puma/pull/2567 "PR by @kddeisz, merged 2021-04-19"
1767
+ [#2566]:https://github.com/puma/puma/issues/2566 "Issue by @kddeisz, closed 2021-04-19"
1768
+ [#2596]:https://github.com/puma/puma/pull/2596 "PR by @MSP-Greg, merged 2021-04-18"
1769
+ [#2588]:https://github.com/puma/puma/pull/2588 "PR by @dentarg, merged 2021-04-02"
1770
+ [#2556]:https://github.com/puma/puma/issues/2556 "Issue by @gamecreature, closed 2021-04-02"
1771
+ [#2585]:https://github.com/puma/puma/pull/2585 "PR by @MSP-Greg, merged 2021-03-26"
1772
+ [#2583]:https://github.com/puma/puma/issues/2583 "Issue by @jboler, closed 2021-03-26"
1773
+ [#2609]:https://github.com/puma/puma/pull/2609 "PR by @calvinxiao, merged 2021-04-26"
1774
+ [#2590]:https://github.com/puma/puma/pull/2590 "PR by @calvinxiao, merged 2021-04-05"
1775
+ [#2600]:https://github.com/puma/puma/pull/2600 "PR by @wjordan, merged 2021-04-30"
1776
+ [#2579]:https://github.com/puma/puma/pull/2579 "PR by @ghiculescu, merged 2021-03-17"
1777
+ [#2553]:https://github.com/puma/puma/pull/2553 "PR by @olivierbellone, merged 2021-02-10"
1778
+ [#2557]:https://github.com/puma/puma/pull/2557 "PR by @cjlarose, merged 2021-02-22"
1779
+ [#2550]:https://github.com/puma/puma/pull/2550 "PR by @MSP-Greg, merged 2021-02-05"
1780
+ [#2547]:https://github.com/puma/puma/pull/2547 "PR by @wildmaples, merged 2021-02-03"
1781
+ [#2543]:https://github.com/puma/puma/pull/2543 "PR by @MSP-Greg, merged 2021-02-01"
1782
+ [#2549]:https://github.com/puma/puma/pull/2549 "PR by @nmb, merged 2021-02-04"
1783
+ [#2519]:https://github.com/puma/puma/pull/2519 "PR by @MSP-Greg, merged 2021-01-26"
1784
+ [#2522]:https://github.com/puma/puma/pull/2522 "PR by @jcmfernandes, merged 2021-01-12"
1785
+ [#2490]:https://github.com/puma/puma/pull/2490 "PR by @Bonias, merged 2020-12-07"
1786
+ [#2486]:https://github.com/puma/puma/pull/2486 "PR by @ccverak, merged 2020-12-02"
1787
+ [#2535]:https://github.com/puma/puma/pull/2535 "PR by @MSP-Greg, merged 2021-01-27"
1788
+ [#2529]:https://github.com/puma/puma/pull/2529 "PR by @MSP-Greg, merged 2021-01-24"
1789
+ [#2533]:https://github.com/puma/puma/pull/2533 "PR by @MSP-Greg, merged 2021-01-24"
1790
+ [#1953]:https://github.com/puma/puma/issues/1953 "Issue by @nateberkopec, closed 2020-12-01"
1791
+ [#2516]:https://github.com/puma/puma/pull/2516 "PR by @cjlarose, merged 2020-12-17"
1792
+ [#2520]:https://github.com/puma/puma/pull/2520 "PR by @dentarg, merged 2021-01-04"
1793
+ [#2521]:https://github.com/puma/puma/pull/2521 "PR by @ojab, merged 2021-01-04"
1794
+ [#2531]:https://github.com/puma/puma/pull/2531 "PR by @wjordan, merged 2021-01-19"
1795
+ [#2510]:https://github.com/puma/puma/pull/2510 "PR by @micke, merged 2020-12-10"
1796
+ [#2472]:https://github.com/puma/puma/pull/2472 "PR by @ccverak, merged 2020-11-02"
1797
+ [#2438]:https://github.com/puma/puma/pull/2438 "PR by @ekohl, merged 2020-10-26"
1798
+ [#2406]:https://github.com/puma/puma/pull/2406 "PR by @fdel15, merged 2020-10-19"
1799
+ [#2449]:https://github.com/puma/puma/pull/2449 "PR by @MSP-Greg, merged 2020-10-28"
1800
+ [#2362]:https://github.com/puma/puma/pull/2362 "PR by @ekohl, merged 2020-11-10"
1801
+ [#2485]:https://github.com/puma/puma/pull/2485 "PR by @elct9620, merged 2020-11-18"
1802
+ [#2489]:https://github.com/puma/puma/pull/2489 "PR by @MSP-Greg, merged 2020-11-27"
1803
+ [#2487]:https://github.com/puma/puma/pull/2487 "PR by @MSP-Greg, merged 2020-11-17"
1804
+ [#2477]:https://github.com/puma/puma/pull/2477 "PR by @MSP-Greg, merged 2020-11-16"
1805
+ [#2475]:https://github.com/puma/puma/pull/2475 "PR by @nateberkopec, merged 2020-11-02"
1806
+ [#2439]:https://github.com/puma/puma/pull/2439 "PR by @kuei0221, merged 2020-10-26"
1807
+ [#2460]:https://github.com/puma/puma/pull/2460 "PR by @cjlarose, merged 2020-10-27"
1808
+ [#2473]:https://github.com/puma/puma/pull/2473 "PR by @cjlarose, merged 2020-11-01"
1809
+ [#2479]:https://github.com/puma/puma/pull/2479 "PR by @cjlarose, merged 2020-11-10"
1810
+ [#2495]:https://github.com/puma/puma/pull/2495 "PR by @JuanitoFatas, merged 2020-11-27"
1811
+ [#2461]:https://github.com/puma/puma/pull/2461 "PR by @cjlarose, merged 2020-10-27"
1812
+ [#2454]:https://github.com/puma/puma/issues/2454 "Issue by @majksner, closed 2020-10-27"
1813
+ [#2432]:https://github.com/puma/puma/pull/2432 "PR by @MSP-Greg, merged 2020-10-25"
1814
+ [#2442]:https://github.com/puma/puma/pull/2442 "PR by @wjordan, merged 2020-10-22"
1815
+ [#2427]:https://github.com/puma/puma/pull/2427 "PR by @cjlarose, merged 2020-10-20"
1816
+ [#2018]:https://github.com/puma/puma/issues/2018 "Issue by @gingerlime, closed 2020-10-20"
1817
+ [#2435]:https://github.com/puma/puma/pull/2435 "PR by @wjordan, merged 2020-10-20"
1818
+ [#2431]:https://github.com/puma/puma/pull/2431 "PR by @wjordan, merged 2020-10-16"
1819
+ [#2212]:https://github.com/puma/puma/issues/2212 "Issue by @junaruga, closed 2020-10-16"
1820
+ [#2409]:https://github.com/puma/puma/pull/2409 "PR by @fliiiix, merged 2020-10-03"
1821
+ [#2448]:https://github.com/puma/puma/pull/2448 "PR by @MSP-Greg, merged 2020-10-25"
1822
+ [#2450]:https://github.com/puma/puma/pull/2450 "PR by @MSP-Greg, merged 2020-10-25"
1823
+ [#2419]:https://github.com/puma/puma/pull/2419 "PR by @MSP-Greg, merged 2020-10-09"
1824
+ [#2279]:https://github.com/puma/puma/pull/2279 "PR by @wjordan, merged 2020-10-06"
1825
+ [#2412]:https://github.com/puma/puma/pull/2412 "PR by @MSP-Greg, merged 2020-10-06"
1826
+ [#2405]:https://github.com/puma/puma/pull/2405 "PR by @MSP-Greg, merged 2020-10-05"
1827
+ [#2408]:https://github.com/puma/puma/pull/2408 "PR by @fliiiix, merged 2020-10-03"
1828
+ [#2374]:https://github.com/puma/puma/pull/2374 "PR by @cjlarose, merged 2020-09-29"
1829
+ [#2389]:https://github.com/puma/puma/pull/2389 "PR by @MSP-Greg, merged 2020-09-29"
1830
+ [#2381]:https://github.com/puma/puma/pull/2381 "PR by @joergschray, merged 2020-09-24"
1831
+ [#2271]:https://github.com/puma/puma/pull/2271 "PR by @wjordan, merged 2020-09-24"
1832
+ [#2377]:https://github.com/puma/puma/pull/2377 "PR by @cjlarose, merged 2020-09-23"
1833
+ [#2376]:https://github.com/puma/puma/pull/2376 "PR by @alexeevit, merged 2020-09-22"
1834
+ [#2372]:https://github.com/puma/puma/pull/2372 "PR by @ahorek, merged 2020-09-22"
1835
+ [#2384]:https://github.com/puma/puma/pull/2384 "PR by @schneems, merged 2020-09-27"
1836
+ [#2375]:https://github.com/puma/puma/pull/2375 "PR by @MSP-Greg, merged 2020-09-23"
1837
+ [#2373]:https://github.com/puma/puma/pull/2373 "PR by @MSP-Greg, merged 2020-09-23"
1838
+ [#2305]:https://github.com/puma/puma/pull/2305 "PR by @MSP-Greg, merged 2020-09-14"
1839
+ [#2099]:https://github.com/puma/puma/pull/2099 "PR by @wjordan, merged 2020-05-11"
1840
+ [#2079]:https://github.com/puma/puma/pull/2079 "PR by @ayufan, merged 2020-05-11"
1841
+ [#2093]:https://github.com/puma/puma/pull/2093 "PR by @schneems, merged 2019-12-18"
1842
+ [#2256]:https://github.com/puma/puma/pull/2256 "PR by @nateberkopec, merged 2020-05-11"
1843
+ [#2054]:https://github.com/puma/puma/pull/2054 "PR by @composerinteralia, merged 2019-11-11"
1844
+ [#2106]:https://github.com/puma/puma/pull/2106 "PR by @ylecuyer, merged 2020-02-11"
1845
+ [#2167]:https://github.com/puma/puma/pull/2167 "PR by @ChrisBr, closed 2020-07-06"
1846
+ [#2344]:https://github.com/puma/puma/pull/2344 "PR by @dentarg, merged 2020-08-26"
1847
+ [#2203]:https://github.com/puma/puma/pull/2203 "PR by @zanker-stripe, merged 2020-03-31"
1848
+ [#2220]:https://github.com/puma/puma/pull/2220 "PR by @wjordan, merged 2020-04-14"
1849
+ [#2238]:https://github.com/puma/puma/pull/2238 "PR by @sthirugn, merged 2020-05-07"
1850
+ [#2086]:https://github.com/puma/puma/pull/2086 "PR by @bdewater, merged 2019-12-17"
1851
+ [#2253]:https://github.com/puma/puma/pull/2253 "PR by @schneems, merged 2020-05-11"
1852
+ [#2288]:https://github.com/puma/puma/pull/2288 "PR by @FTLam11, merged 2020-06-02"
1853
+ [#1487]:https://github.com/puma/puma/pull/1487 "PR by @jxa, merged 2018-05-09"
1854
+ [#2143]:https://github.com/puma/puma/pull/2143 "PR by @jalevin, merged 2020-04-21"
1855
+ [#2169]:https://github.com/puma/puma/pull/2169 "PR by @nateberkopec, merged 2020-03-10"
1856
+ [#2170]:https://github.com/puma/puma/pull/2170 "PR by @nateberkopec, merged 2020-03-10"
1857
+ [#2076]:https://github.com/puma/puma/pull/2076 "PR by @drews256, merged 2020-02-27"
1858
+ [#2022]:https://github.com/puma/puma/pull/2022 "PR by @olleolleolle, merged 2019-11-11"
1859
+ [#2300]:https://github.com/puma/puma/pull/2300 "PR by @alexeevit, merged 2020-07-06"
1860
+ [#2269]:https://github.com/puma/puma/pull/2269 "PR by @MSP-Greg, merged 2020-08-31"
1861
+ [#2312]:https://github.com/puma/puma/pull/2312 "PR by @MSP-Greg, merged 2020-07-20"
1862
+ [#2338]:https://github.com/puma/puma/issues/2338 "Issue by @micahhainlinestitchfix, closed 2020-08-18"
1863
+ [#2116]:https://github.com/puma/puma/pull/2116 "PR by @MSP-Greg, merged 2020-05-15"
1864
+ [#2074]:https://github.com/puma/puma/issues/2074 "Issue by @jchristie55332, closed 2020-02-19"
1865
+ [#2211]:https://github.com/puma/puma/pull/2211 "PR by @MSP-Greg, merged 2020-03-30"
1866
+ [#2069]:https://github.com/puma/puma/pull/2069 "PR by @MSP-Greg, merged 2019-11-09"
1867
+ [#2112]:https://github.com/puma/puma/pull/2112 "PR by @wjordan, merged 2020-03-03"
1868
+ [#1893]:https://github.com/puma/puma/pull/1893 "PR by @seven1m, merged 2020-02-18"
1869
+ [#2119]:https://github.com/puma/puma/pull/2119 "PR by @wjordan, merged 2020-02-20"
1870
+ [#2121]:https://github.com/puma/puma/pull/2121 "PR by @wjordan, merged 2020-02-21"
1871
+ [#2154]:https://github.com/puma/puma/pull/2154 "PR by @cjlarose, merged 2020-03-10"
1872
+ [#1551]:https://github.com/puma/puma/issues/1551 "Issue by @austinthecoder, closed 2020-03-10"
1873
+ [#2198]:https://github.com/puma/puma/pull/2198 "PR by @eregon, merged 2020-03-24"
1874
+ [#2216]:https://github.com/puma/puma/pull/2216 "PR by @praboud-stripe, merged 2020-04-06"
1875
+ [#2122]:https://github.com/puma/puma/pull/2122 "PR by @wjordan, merged 2020-04-10"
1876
+ [#2177]:https://github.com/puma/puma/issues/2177 "Issue by @GuiTeK, closed 2020-04-08"
1877
+ [#2221]:https://github.com/puma/puma/pull/2221 "PR by @wjordan, merged 2020-04-17"
1878
+ [#2233]:https://github.com/puma/puma/pull/2233 "PR by @ayufan, merged 2020-04-25"
1879
+ [#2234]:https://github.com/puma/puma/pull/2234 "PR by @wjordan, merged 2020-04-30"
1880
+ [#2225]:https://github.com/puma/puma/issues/2225 "Issue by @nateberkopec, closed 2020-04-27"
1881
+ [#2267]:https://github.com/puma/puma/pull/2267 "PR by @wjordan, merged 2020-05-20"
1882
+ [#2287]:https://github.com/puma/puma/pull/2287 "PR by @eugeneius, merged 2020-05-31"
1883
+ [#2317]:https://github.com/puma/puma/pull/2317 "PR by @MSP-Greg, merged 2020-09-01"
1884
+ [#2319]:https://github.com/puma/puma/issues/2319 "Issue by @AlexWayfer, closed 2020-09-03"
1885
+ [#2326]:https://github.com/puma/puma/pull/2326 "PR by @rkistner, closed 2020-09-04"
1886
+ [#2299]:https://github.com/puma/puma/issues/2299 "Issue by @JohnPhillips31416, closed 2020-09-17"
1887
+ [#2095]:https://github.com/puma/puma/pull/2095 "PR by @bdewater, merged 2019-12-25"
1888
+ [#2102]:https://github.com/puma/puma/pull/2102 "PR by @bdewater, merged 2020-02-07"
1889
+ [#2111]:https://github.com/puma/puma/pull/2111 "PR by @wjordan, merged 2020-02-20"
1890
+ [#1980]:https://github.com/puma/puma/pull/1980 "PR by @nateberkopec, merged 2020-02-27"
1891
+ [#2189]:https://github.com/puma/puma/pull/2189 "PR by @jkowens, merged 2020-03-19"
1892
+ [#2124]:https://github.com/puma/puma/pull/2124 "PR by @wjordan, merged 2020-04-14"
1893
+ [#2223]:https://github.com/puma/puma/pull/2223 "PR by @wjordan, merged 2020-04-20"
1894
+ [#2239]:https://github.com/puma/puma/pull/2239 "PR by @wjordan, merged 2020-05-15"
1895
+ [#2496]:https://github.com/puma/puma/pull/2496 "PR by @TheRusskiy, merged 2020-11-30"
1896
+ [#2304]:https://github.com/puma/puma/issues/2304 "Issue by @mpeltomaa, closed 2020-09-05"
1897
+ [#2132]:https://github.com/puma/puma/issues/2132 "Issue by @bmclean, closed 2020-02-28"
1898
+ [#2010]:https://github.com/puma/puma/pull/2010 "PR by @nateberkopec, merged 2019-10-07"
1899
+ [#2012]:https://github.com/puma/puma/pull/2012 "PR by @headius, merged 2019-10-07"
1900
+ [#2046]:https://github.com/puma/puma/pull/2046 "PR by @composerinteralia, merged 2019-10-21"
1901
+ [#2052]:https://github.com/puma/puma/pull/2052 "PR by @composerinteralia, merged 2019-11-02"
1902
+ [#1564]:https://github.com/puma/puma/issues/1564 "Issue by @perlun, closed 2019-10-07"
1903
+ [#2035]:https://github.com/puma/puma/pull/2035 "PR by @AndrewSpeed, merged 2019-10-18"
1904
+ [#2048]:https://github.com/puma/puma/pull/2048 "PR by @hahmed, merged 2019-10-21"
1905
+ [#2050]:https://github.com/puma/puma/pull/2050 "PR by @olleolleolle, merged 2019-10-25"
1906
+ [#1842]:https://github.com/puma/puma/issues/1842 "Issue by @nateberkopec, closed 2019-09-18"
1907
+ [#1988]:https://github.com/puma/puma/issues/1988 "Issue by @mcg, closed 2019-10-01"
1908
+ [#1986]:https://github.com/puma/puma/issues/1986 "Issue by @flaminestone, closed 2019-10-01"
1909
+ [#1994]:https://github.com/puma/puma/issues/1994 "Issue by @LimeBlast, closed 2019-10-01"
1910
+ [#2006]:https://github.com/puma/puma/pull/2006 "PR by @nateberkopec, merged 2019-10-01"
1911
+ [#1222]:https://github.com/puma/puma/issues/1222 "Issue by @seanmckinley, closed 2019-10-04"
1912
+ [#1885]:https://github.com/puma/puma/pull/1885 "PR by @spk, merged 2019-08-10"
1913
+ [#1934]:https://github.com/puma/puma/pull/1934 "PR by @zarelit, merged 2019-08-28"
1914
+ [#1105]:https://github.com/puma/puma/pull/1105 "PR by @daveallie, merged 2019-09-02"
1915
+ [#1786]:https://github.com/puma/puma/pull/1786 "PR by @evanphx, merged 2019-09-11"
1916
+ [#1320]:https://github.com/puma/puma/pull/1320 "PR by @nateberkopec, merged 2019-09-12"
1917
+ [#1968]:https://github.com/puma/puma/pull/1968 "PR by @nateberkopec, merged 2019-09-15"
1918
+ [#1908]:https://github.com/puma/puma/pull/1908 "PR by @MSP-Greg, merged 2019-08-23"
1919
+ [#1952]:https://github.com/puma/puma/pull/1952 "PR by @MSP-Greg, merged 2019-09-19"
1920
+ [#1941]:https://github.com/puma/puma/pull/1941 "PR by @MSP-Greg, merged 2019-09-02"
1921
+ [#1961]:https://github.com/puma/puma/pull/1961 "PR by @nateberkopec, merged 2019-09-11"
1922
+ [#1970]:https://github.com/puma/puma/pull/1970 "PR by @MSP-Greg, merged 2019-09-18"
1923
+ [#1946]:https://github.com/puma/puma/pull/1946 "PR by @nateberkopec, merged 2019-09-02"
1924
+ [#1831]:https://github.com/puma/puma/pull/1831 "PR by @spk, merged 2019-07-27"
1925
+ [#1816]:https://github.com/puma/puma/pull/1816 "PR by @ylecuyer, merged 2019-08-01"
1926
+ [#1844]:https://github.com/puma/puma/pull/1844 "PR by @ylecuyer, merged 2019-08-01"
1927
+ [#1836]:https://github.com/puma/puma/pull/1836 "PR by @MSP-Greg, merged 2019-08-06"
1928
+ [#1887]:https://github.com/puma/puma/pull/1887 "PR by @MSP-Greg, merged 2019-08-06"
1929
+ [#1812]:https://github.com/puma/puma/pull/1812 "PR by @kou, merged 2019-08-03"
1930
+ [#1491]:https://github.com/puma/puma/pull/1491 "PR by @olleolleolle, merged 2019-07-17"
1931
+ [#1837]:https://github.com/puma/puma/pull/1837 "PR by @montanalow, merged 2019-07-25"
1932
+ [#1857]:https://github.com/puma/puma/pull/1857 "PR by @Jesus, merged 2019-08-03"
1933
+ [#1822]:https://github.com/puma/puma/pull/1822 "PR by @Jesus, merged 2019-08-01"
1934
+ [#1863]:https://github.com/puma/puma/pull/1863 "PR by @dzunk, merged 2019-08-04"
1935
+ [#1838]:https://github.com/puma/puma/pull/1838 "PR by @bogn83, merged 2019-07-14"
1936
+ [#1882]:https://github.com/puma/puma/pull/1882 "PR by @okuramasafumi, merged 2019-08-06"
1937
+ [#1848]:https://github.com/puma/puma/pull/1848 "PR by @nateberkopec, merged 2019-07-16"
1938
+ [#1847]:https://github.com/puma/puma/pull/1847 "PR by @nateberkopec, merged 2019-07-16"
1939
+ [#1846]:https://github.com/puma/puma/pull/1846 "PR by @nateberkopec, merged 2019-07-16"
1940
+ [#1853]:https://github.com/puma/puma/pull/1853 "PR by @Jesus, merged 2019-07-18"
1941
+ [#1850]:https://github.com/puma/puma/pull/1850 "PR by @nateberkopec, merged 2019-07-27"
1942
+ [#1866]:https://github.com/puma/puma/pull/1866 "PR by @josacar, merged 2019-07-28"
1943
+ [#1870]:https://github.com/puma/puma/pull/1870 "PR by @MSP-Greg, merged 2019-07-30"
1944
+ [#1872]:https://github.com/puma/puma/pull/1872 "PR by @MSP-Greg, merged 2019-07-30"
1945
+ [#1833]:https://github.com/puma/puma/issues/1833 "Issue by @julik, closed 2019-07-09"
1946
+ [#1888]:https://github.com/puma/puma/pull/1888 "PR by @ClikeX, merged 2019-08-06"
1947
+ [#1829]:https://github.com/puma/puma/pull/1829 "PR by @Fudoshiki, merged 2019-07-09"
1948
+ [#1832]:https://github.com/puma/puma/pull/1832 "PR by @MSP-Greg, merged 2019-07-08"
1949
+ [#1827]:https://github.com/puma/puma/pull/1827 "PR by @amrrbakry, merged 2019-06-27"
1950
+ [#1562]:https://github.com/puma/puma/pull/1562 "PR by @skrobul, merged 2019-02-20"
1951
+ [#1569]:https://github.com/puma/puma/pull/1569 "PR by @rianmcguire, merged 2019-02-20"
1952
+ [#1648]:https://github.com/puma/puma/pull/1648 "PR by @wjordan, merged 2019-02-20"
1953
+ [#1691]:https://github.com/puma/puma/pull/1691 "PR by @kares, merged 2019-02-20"
1954
+ [#1716]:https://github.com/puma/puma/pull/1716 "PR by @mdkent, merged 2019-02-20"
1955
+ [#1690]:https://github.com/puma/puma/pull/1690 "PR by @mic-kul, merged 2019-03-11"
1956
+ [#1689]:https://github.com/puma/puma/pull/1689 "PR by @michaelherold, merged 2019-03-11"
1957
+ [#1728]:https://github.com/puma/puma/pull/1728 "PR by @evanphx, merged 2019-03-20"
1958
+ [#1824]:https://github.com/puma/puma/pull/1824 "PR by @spk, merged 2019-06-24"
1959
+ [#1685]:https://github.com/puma/puma/pull/1685 "PR by @mainameiz, merged 2019-02-20"
1960
+ [#1808]:https://github.com/puma/puma/pull/1808 "PR by @schneems, merged 2019-06-10"
1961
+ [#1508]:https://github.com/puma/puma/pull/1508 "PR by @florin555, merged 2019-02-20"
1962
+ [#1650]:https://github.com/puma/puma/pull/1650 "PR by @adam101, merged 2019-02-20"
1963
+ [#1655]:https://github.com/puma/puma/pull/1655 "PR by @mipearson, merged 2019-02-20"
1964
+ [#1671]:https://github.com/puma/puma/pull/1671 "PR by @eric-norcross, merged 2019-02-20"
1965
+ [#1583]:https://github.com/puma/puma/pull/1583 "PR by @chwevans, merged 2019-02-20"
1966
+ [#1773]:https://github.com/puma/puma/pull/1773 "PR by @enebo, merged 2019-04-14"
1967
+ [#1731]:https://github.com/puma/puma/issues/1731 "Issue by @Fudoshiki, closed 2019-03-20"
1968
+ [#1803]:https://github.com/puma/puma/pull/1803 "PR by @Jesus, merged 2019-05-28"
1969
+ [#1741]:https://github.com/puma/puma/pull/1741 "PR by @MSP-Greg, merged 2019-03-19"
1970
+ [#1674]:https://github.com/puma/puma/issues/1674 "Issue by @atitan, closed 2019-06-12"
1971
+ [#1720]:https://github.com/puma/puma/issues/1720 "Issue by @voxik, closed 2019-03-20"
1972
+ [#1730]:https://github.com/puma/puma/issues/1730 "Issue by @nearapogee, closed 2019-07-16"
1973
+ [#1755]:https://github.com/puma/puma/issues/1755 "Issue by @vbalazs, closed 2019-07-26"
1974
+ [#1649]:https://github.com/puma/puma/pull/1649 "PR by @schneems, merged 2018-10-17"
1975
+ [#1607]:https://github.com/puma/puma/pull/1607 "PR by @harmdewit, merged 2018-08-15"
1976
+ [#1700]:https://github.com/puma/puma/pull/1700 "PR by @schneems, merged 2019-01-05"
1977
+ [#1630]:https://github.com/puma/puma/pull/1630 "PR by @eregon, merged 2018-09-11"
1978
+ [#1478]:https://github.com/puma/puma/pull/1478 "PR by @eallison91, merged 2018-05-09"
1979
+ [#1604]:https://github.com/puma/puma/pull/1604 "PR by @schneems, merged 2018-07-02"
1980
+ [#1579]:https://github.com/puma/puma/pull/1579 "PR by @schneems, merged 2018-06-14"
1981
+ [#1506]:https://github.com/puma/puma/pull/1506 "PR by @dekellum, merged 2018-05-09"
1982
+ [#1563]:https://github.com/puma/puma/pull/1563 "PR by @dannyfallon, merged 2018-05-01"
1983
+ [#1557]:https://github.com/puma/puma/pull/1557 "PR by @swrobel, merged 2018-05-09"
1984
+ [#1529]:https://github.com/puma/puma/pull/1529 "PR by @desnudopenguino, merged 2018-03-20"
1985
+ [#1532]:https://github.com/puma/puma/pull/1532 "PR by @schneems, merged 2018-03-21"
1986
+ [#1482]:https://github.com/puma/puma/pull/1482 "PR by @shayonj, merged 2018-03-19"
1987
+ [#1511]:https://github.com/puma/puma/pull/1511 "PR by @jemiam, merged 2018-03-19"
1988
+ [#1545]:https://github.com/puma/puma/pull/1545 "PR by @hoshinotsuyoshi, merged 2018-03-28"
1989
+ [#1550]:https://github.com/puma/puma/pull/1550 "PR by @eileencodes, merged 2018-03-29"
1990
+ [#1553]:https://github.com/puma/puma/pull/1553 "PR by @eugeneius, merged 2018-04-02"
1991
+ [#1510]:https://github.com/puma/puma/issues/1510 "Issue by @vincentwoo, closed 2018-03-06"
1992
+ [#1524]:https://github.com/puma/puma/pull/1524 "PR by @tuwukee, closed 2018-03-06"
1993
+ [#1507]:https://github.com/puma/puma/issues/1507 "Issue by @vincentwoo, closed 2018-03-19"
1994
+ [#1483]:https://github.com/puma/puma/issues/1483 "Issue by @igravious, closed 2018-03-06"
1995
+ [#1502]:https://github.com/puma/puma/issues/1502 "Issue by @vincentwoo, closed 2020-03-09"
1996
+ [#1403]:https://github.com/puma/puma/pull/1403 "PR by @eileencodes, merged 2017-10-04"
1997
+ [#1435]:https://github.com/puma/puma/pull/1435 "PR by @juliancheal, merged 2017-10-11"
1998
+ [#1340]:https://github.com/puma/puma/pull/1340 "PR by @ViliusLuneckas, merged 2017-10-16"
1999
+ [#1434]:https://github.com/puma/puma/pull/1434 "PR by @jumbosushi, merged 2017-10-10"
2000
+ [#1436]:https://github.com/puma/puma/pull/1436 "PR by @luislavena, merged 2017-10-11"
2001
+ [#1418]:https://github.com/puma/puma/pull/1418 "PR by @eileencodes, merged 2017-09-22"
2002
+ [#1416]:https://github.com/puma/puma/pull/1416 "PR by @hiimtaylorjones, merged 2017-09-22"
2003
+ [#1409]:https://github.com/puma/puma/pull/1409 "PR by @olleolleolle, merged 2017-09-13"
2004
+ [#1427]:https://github.com/puma/puma/issues/1427 "Issue by @garybernhardt, closed 2017-10-04"
2005
+ [#1430]:https://github.com/puma/puma/pull/1430 "PR by @MSP-Greg, merged 2017-10-09"
2006
+ [#1429]:https://github.com/puma/puma/pull/1429 "PR by @perlun, merged 2017-10-09"
2007
+ [#1455]:https://github.com/puma/puma/pull/1455 "PR by @perlun, merged 2017-11-16"
2008
+ [#1425]:https://github.com/puma/puma/pull/1425 "PR by @vizcay, merged 2017-10-01"
2009
+ [#1452]:https://github.com/puma/puma/pull/1452 "PR by @eprothro, merged 2017-11-16"
2010
+ [#1439]:https://github.com/puma/puma/pull/1439 "PR by @MSP-Greg, merged 2017-10-16"
2011
+ [#1442]:https://github.com/puma/puma/pull/1442 "PR by @MSP-Greg, merged 2017-10-19"
2012
+ [#1464]:https://github.com/puma/puma/pull/1464 "PR by @MSP-Greg, merged 2017-11-20"
2013
+ [#1384]:https://github.com/puma/puma/pull/1384 "PR by @noahgibbs, merged 2017-08-03"
2014
+ [#1111]:https://github.com/puma/puma/pull/1111 "PR by @alexlance, merged 2017-06-04"
2015
+ [#1392]:https://github.com/puma/puma/pull/1392 "PR by @hoffm, merged 2017-08-11"
2016
+ [#1347]:https://github.com/puma/puma/pull/1347 "PR by @NikolayRys, merged 2017-06-28"
2017
+ [#1334]:https://github.com/puma/puma/pull/1334 "PR by @respire, merged 2017-06-13"
2018
+ [#1383]:https://github.com/puma/puma/pull/1383 "PR by @schneems, merged 2017-08-02"
2019
+ [#1368]:https://github.com/puma/puma/pull/1368 "PR by @bongole, merged 2017-08-03"
2020
+ [#1318]:https://github.com/puma/puma/pull/1318 "PR by @nateberkopec, merged 2017-08-03"
2021
+ [#1376]:https://github.com/puma/puma/pull/1376 "PR by @pat, merged 2017-08-03"
2022
+ [#1388]:https://github.com/puma/puma/pull/1388 "PR by @nateberkopec, merged 2017-08-08"
2023
+ [#1390]:https://github.com/puma/puma/pull/1390 "PR by @junaruga, merged 2017-08-16"
2024
+ [#1391]:https://github.com/puma/puma/pull/1391 "PR by @junaruga, merged 2017-08-16"
2025
+ [#1385]:https://github.com/puma/puma/pull/1385 "PR by @grosser, merged 2017-08-16"
2026
+ [#1377]:https://github.com/puma/puma/pull/1377 "PR by @shayonj, merged 2017-08-16"
2027
+ [#1337]:https://github.com/puma/puma/pull/1337 "PR by @shayonj, merged 2017-08-16"
2028
+ [#1325]:https://github.com/puma/puma/pull/1325 "PR by @palkan, merged 2017-06-04"
2029
+ [#1395]:https://github.com/puma/puma/pull/1395 "PR by @junaruga, merged 2017-08-16"
2030
+ [#1367]:https://github.com/puma/puma/issues/1367 "Issue by @dekellum, closed 2017-08-17"
2031
+ [#1314]:https://github.com/puma/puma/pull/1314 "PR by @grosser, merged 2017-06-02"
2032
+ [#1311]:https://github.com/puma/puma/pull/1311 "PR by @grosser, merged 2017-06-02"
2033
+ [#1313]:https://github.com/puma/puma/pull/1313 "PR by @grosser, merged 2017-06-03"
2034
+ [#1260]:https://github.com/puma/puma/pull/1260 "PR by @grosser, merged 2017-04-11"
2035
+ [#1278]:https://github.com/puma/puma/pull/1278 "PR by @evanphx, merged 2017-04-28"
2036
+ [#1306]:https://github.com/puma/puma/pull/1306 "PR by @jules2689, merged 2017-05-31"
2037
+ [#1274]:https://github.com/puma/puma/pull/1274 "PR by @evanphx, merged 2017-05-01"
2038
+ [#1261]:https://github.com/puma/puma/pull/1261 "PR by @jacksonrayhamilton, merged 2017-04-07"
2039
+ [#1259]:https://github.com/puma/puma/pull/1259 "PR by @jacksonrayhamilton, merged 2017-04-07"
2040
+ [#1248]:https://github.com/puma/puma/pull/1248 "PR by @davidarnold, merged 2017-04-18"
2041
+ [#1277]:https://github.com/puma/puma/pull/1277 "PR by @schneems, merged 2017-05-01"
2042
+ [#1290]:https://github.com/puma/puma/pull/1290 "PR by @schneems, merged 2017-05-12"
2043
+ [#1285]:https://github.com/puma/puma/pull/1285 "PR by @fmauNeko, merged 2017-05-12"
2044
+ [#1282]:https://github.com/puma/puma/pull/1282 "PR by @grosser, merged 2017-05-09"
2045
+ [#1294]:https://github.com/puma/puma/pull/1294 "PR by @masry707, merged 2017-05-15"
2046
+ [#1206]:https://github.com/puma/puma/pull/1206 "PR by @NikolayRys, closed 2017-06-27"
2047
+ [#1241]:https://github.com/puma/puma/issues/1241 "Issue by @renchap, closed 2017-03-14"
2048
+ [#1239]:https://github.com/puma/puma/pull/1239 "PR by @schneems, merged 2017-03-10"
2049
+ [#1234]:https://github.com/puma/puma/pull/1234 "PR by @schneems, merged 2017-03-09"
2050
+ [#1226]:https://github.com/puma/puma/pull/1226 "PR by @eileencodes, merged 2017-03-09"
2051
+ [#1227]:https://github.com/puma/puma/pull/1227 "PR by @sirupsen, merged 2017-02-27"
2052
+ [#1213]:https://github.com/puma/puma/pull/1213 "PR by @junaruga, merged 2017-02-28"
2053
+ [#1182]:https://github.com/puma/puma/issues/1182 "Issue by @brunowego, closed 2017-02-09"
2054
+ [#1203]:https://github.com/puma/puma/pull/1203 "PR by @twalpole, merged 2017-02-09"
2055
+ [#1129]:https://github.com/puma/puma/pull/1129 "PR by @chtitux, merged 2016-12-12"
2056
+ [#1165]:https://github.com/puma/puma/pull/1165 "PR by @sriedel, merged 2016-12-21"
2057
+ [#1175]:https://github.com/puma/puma/pull/1175 "PR by @jemiam, merged 2016-12-21"
2058
+ [#1068]:https://github.com/puma/puma/pull/1068 "PR by @junaruga, merged 2016-09-05"
2059
+ [#1091]:https://github.com/puma/puma/pull/1091 "PR by @frodsan, merged 2016-09-17"
2060
+ [#1088]:https://github.com/puma/puma/pull/1088 "PR by @frodsan, merged 2016-11-20"
2061
+ [#1160]:https://github.com/puma/puma/pull/1160 "PR by @frodsan, merged 2016-11-24"
2062
+ [#1169]:https://github.com/puma/puma/pull/1169 "PR by @scbrubaker02, merged 2016-12-12"
2063
+ [#1061]:https://github.com/puma/puma/pull/1061 "PR by @michaelsauter, merged 2016-09-05"
2064
+ [#1036]:https://github.com/puma/puma/issues/1036 "Issue by @matobinder, closed 2016-08-03"
2065
+ [#1120]:https://github.com/puma/puma/pull/1120 "PR by @prathamesh-sonpatki, merged 2016-11-21"
2066
+ [#1178]:https://github.com/puma/puma/pull/1178 "PR by @Koronen, merged 2016-12-21"
2067
+ [#1002]:https://github.com/puma/puma/issues/1002 "Issue by @mattyb, closed 2016-07-26"
2068
+ [#1063]:https://github.com/puma/puma/issues/1063 "Issue by @mperham, closed 2016-09-05"
2069
+ [#1089]:https://github.com/puma/puma/issues/1089 "Issue by @AdamBialas, closed 2016-09-17"
2070
+ [#1114]:https://github.com/puma/puma/pull/1114 "PR by @sj26, merged 2016-12-13"
2071
+ [#1110]:https://github.com/puma/puma/pull/1110 "PR by @montdidier, merged 2016-12-12"
2072
+ [#1135]:https://github.com/puma/puma/pull/1135 "PR by @jkraemer, merged 2016-11-19"
2073
+ [#1081]:https://github.com/puma/puma/pull/1081 "PR by @frodsan, merged 2016-09-08"
2074
+ [#1138]:https://github.com/puma/puma/pull/1138 "PR by @steakknife, merged 2016-12-13"
2075
+ [#1118]:https://github.com/puma/puma/pull/1118 "PR by @hiroara, merged 2016-11-20"
2076
+ [#1075]:https://github.com/puma/puma/issues/1075 "Issue by @pvalena, closed 2016-09-06"
2077
+ [#932]:https://github.com/puma/puma/issues/932 "Issue by @everplays, closed 2016-07-24"
2078
+ [#519]:https://github.com/puma/puma/issues/519 "Issue by @tmornini, closed 2016-07-25"
2079
+ [#828]:https://github.com/puma/puma/issues/828 "Issue by @Zapotek, closed 2016-07-24"
2080
+ [#984]:https://github.com/puma/puma/issues/984 "Issue by @erichmenge, closed 2016-07-24"
2081
+ [#1028]:https://github.com/puma/puma/issues/1028 "Issue by @matobinder, closed 2016-07-24"
2082
+ [#1023]:https://github.com/puma/puma/issues/1023 "Issue by @fera2k, closed 2016-07-24"
2083
+ [#1027]:https://github.com/puma/puma/issues/1027 "Issue by @rosenfeld, closed 2016-07-24"
2084
+ [#925]:https://github.com/puma/puma/issues/925 "Issue by @lokenmakwana, closed 2016-07-24"
2085
+ [#911]:https://github.com/puma/puma/issues/911 "Issue by @veganstraightedge, closed 2016-07-24"
2086
+ [#620]:https://github.com/puma/puma/issues/620 "Issue by @javanthropus, closed 2016-07-25"
2087
+ [#778]:https://github.com/puma/puma/issues/778 "Issue by @niedhui, closed 2016-07-24"
2088
+ [#1021]:https://github.com/puma/puma/pull/1021 "PR by @sarahzrf, merged 2016-07-20"
2089
+ [#1022]:https://github.com/puma/puma/issues/1022 "Issue by @AKovtunov, closed 2017-08-16"
2090
+ [#958]:https://github.com/puma/puma/issues/958 "Issue by @lalitlogical, closed 2016-04-23"
2091
+ [#782]:https://github.com/puma/puma/issues/782 "Issue by @Tonkpils, closed 2016-07-19"
2092
+ [#1010]:https://github.com/puma/puma/issues/1010 "Issue by @mneumark, closed 2016-07-19"
2093
+ [#959]:https://github.com/puma/puma/issues/959 "Issue by @mwpastore, closed 2016-04-22"
2094
+ [#840]:https://github.com/puma/puma/issues/840 "Issue by @maxkwallace, closed 2016-04-07"
2095
+ [#1007]:https://github.com/puma/puma/pull/1007 "PR by @willnet, merged 2016-06-24"
2096
+ [#1014]:https://github.com/puma/puma/pull/1014 "PR by @szymon-jez, merged 2016-07-11"
2097
+ [#1015]:https://github.com/puma/puma/pull/1015 "PR by @bf4, merged 2016-07-19"
2098
+ [#1017]:https://github.com/puma/puma/pull/1017 "PR by @jorihardman, merged 2016-07-19"
2099
+ [#954]:https://github.com/puma/puma/pull/954 "PR by @jf, merged 2016-04-12"
2100
+ [#955]:https://github.com/puma/puma/pull/955 "PR by @jf, merged 2016-04-22"
2101
+ [#956]:https://github.com/puma/puma/pull/956 "PR by @maxkwallace, merged 2016-04-12"
2102
+ [#960]:https://github.com/puma/puma/pull/960 "PR by @kmayer, merged 2016-04-15"
2103
+ [#969]:https://github.com/puma/puma/pull/969 "PR by @frankwong15, merged 2016-05-10"
2104
+ [#970]:https://github.com/puma/puma/pull/970 "PR by @willnet, merged 2016-04-26"
2105
+ [#974]:https://github.com/puma/puma/pull/974 "PR by @reidmorrison, merged 2016-05-10"
2106
+ [#977]:https://github.com/puma/puma/pull/977 "PR by @snow, merged 2016-05-10"
2107
+ [#981]:https://github.com/puma/puma/pull/981 "PR by @zach-chai, merged 2016-07-19"
2108
+ [#993]:https://github.com/puma/puma/pull/993 "PR by @scorix, merged 2016-07-19"
2109
+ [#938]:https://github.com/puma/puma/issues/938 "Issue by @vandrijevik, closed 2016-04-07"
2110
+ [#529]:https://github.com/puma/puma/issues/529 "Issue by @mperham, closed 2016-04-07"
2111
+ [#788]:https://github.com/puma/puma/issues/788 "Issue by @herregroen, closed 2016-04-07"
2112
+ [#894]:https://github.com/puma/puma/issues/894 "Issue by @rafbm, closed 2016-04-07"
2113
+ [#937]:https://github.com/puma/puma/issues/937 "Issue by @huangxiangdan, closed 2016-04-07"
2114
+ [#945]:https://github.com/puma/puma/pull/945 "PR by @dekellum, merged 2016-04-07"
2115
+ [#946]:https://github.com/puma/puma/pull/946 "PR by @vipulnsward, merged 2016-04-07"
2116
+ [#947]:https://github.com/puma/puma/pull/947 "PR by @vipulnsward, merged 2016-04-07"
2117
+ [#936]:https://github.com/puma/puma/pull/936 "PR by @prathamesh-sonpatki, merged 2016-04-01"
2118
+ [#940]:https://github.com/puma/puma/pull/940 "PR by @kyledrake, merged 2016-04-01"
2119
+ [#942]:https://github.com/puma/puma/pull/942 "PR by @dekellum, merged 2016-04-01"
2120
+ [#927]:https://github.com/puma/puma/pull/927 "PR by @jlecour, merged 2016-03-18"
2121
+ [#931]:https://github.com/puma/puma/pull/931 "PR by @runlevel5, merged 2016-03-18"
2122
+ [#922]:https://github.com/puma/puma/issues/922 "Issue by @LavirtheWhiolet, closed 2016-03-07"
2123
+ [#923]:https://github.com/puma/puma/issues/923 "Issue by @donv, closed 2016-03-06"
2124
+ [#912]:https://github.com/puma/puma/pull/912 "PR by @tricknotes, merged 2016-03-06"
2125
+ [#921]:https://github.com/puma/puma/pull/921 "PR by @swrobel, merged 2016-03-06"
2126
+ [#924]:https://github.com/puma/puma/pull/924 "PR by @tbrisker, merged 2016-03-07"
2127
+ [#916]:https://github.com/puma/puma/issues/916 "Issue by @ma11hew28, closed 2016-03-06"
2128
+ [#913]:https://github.com/puma/puma/issues/913 "Issue by @Casara, closed 2016-03-06"
2129
+ [#918]:https://github.com/puma/puma/issues/918 "Issue by @rodrigdav, closed 2016-03-06"
2130
+ [#910]:https://github.com/puma/puma/issues/910 "Issue by @ball-hayden, closed 2016-03-05"
2131
+ [#914]:https://github.com/puma/puma/issues/914 "Issue by @osheroff, closed 2016-03-06"
2132
+ [#901]:https://github.com/puma/puma/pull/901 "PR by @mitto, merged 2016-02-26"
2133
+ [#902]:https://github.com/puma/puma/pull/902 "PR by @corrupt952, merged 2016-02-26"
2134
+ [#905]:https://github.com/puma/puma/pull/905 "PR by @Eric-Guo, merged 2016-02-26"
2135
+ [#852]:https://github.com/puma/puma/issues/852 "Issue by @asia653, closed 2016-02-25"
2136
+ [#854]:https://github.com/puma/puma/issues/854 "Issue by @ollym, closed 2016-02-25"
2137
+ [#824]:https://github.com/puma/puma/issues/824 "Issue by @MattWalston, closed 2016-02-25"
2138
+ [#823]:https://github.com/puma/puma/issues/823 "Issue by @pneuman, closed 2016-02-25"
2139
+ [#815]:https://github.com/puma/puma/issues/815 "Issue by @nate-dipiazza, closed 2016-02-25"
2140
+ [#835]:https://github.com/puma/puma/issues/835 "Issue by @mwpastore, closed 2016-02-25"
2141
+ [#798]:https://github.com/puma/puma/issues/798 "Issue by @schneems, closed 2016-02-25"
2142
+ [#876]:https://github.com/puma/puma/issues/876 "Issue by @osheroff, closed 2016-02-25"
2143
+ [#849]:https://github.com/puma/puma/issues/849 "Issue by @apotheon, closed 2016-02-25"
2144
+ [#871]:https://github.com/puma/puma/pull/871 "PR by @deepj, merged 2016-02-25"
2145
+ [#874]:https://github.com/puma/puma/pull/874 "PR by @wallclockbuilder, merged 2016-02-25"
2146
+ [#883]:https://github.com/puma/puma/pull/883 "PR by @dadah89, merged 2016-02-25"
2147
+ [#884]:https://github.com/puma/puma/pull/884 "PR by @furkanmustafa, merged 2016-02-25"
2148
+ [#888]:https://github.com/puma/puma/pull/888 "PR by @mlarraz, merged 2016-02-25"
2149
+ [#890]:https://github.com/puma/puma/pull/890 "PR by @todd, merged 2016-02-25"
2150
+ [#891]:https://github.com/puma/puma/pull/891 "PR by @ctaintor, merged 2016-02-25"
2151
+ [#893]:https://github.com/puma/puma/pull/893 "PR by @spastorino, merged 2016-02-25"
2152
+ [#897]:https://github.com/puma/puma/pull/897 "PR by @vanchi-zendesk, merged 2016-02-25"
2153
+ [#899]:https://github.com/puma/puma/pull/899 "PR by @kch, merged 2016-02-25"
2154
+ [#859]:https://github.com/puma/puma/issues/859 "Issue by @boxofrad, closed 2016-01-28"
2155
+ [#822]:https://github.com/puma/puma/pull/822 "PR by @kwugirl, merged 2016-01-28"
2156
+ [#833]:https://github.com/puma/puma/pull/833 "PR by @joemiller, merged 2016-01-28"
2157
+ [#837]:https://github.com/puma/puma/pull/837 "PR by @YurySolovyov, merged 2016-01-28"
2158
+ [#839]:https://github.com/puma/puma/pull/839 "PR by @ka8725, merged 2016-01-15"
2159
+ [#845]:https://github.com/puma/puma/pull/845 "PR by @deepj, merged 2016-01-28"
2160
+ [#846]:https://github.com/puma/puma/pull/846 "PR by @sriedel, merged 2016-01-15"
2161
+ [#850]:https://github.com/puma/puma/pull/850 "PR by @deepj, merged 2016-01-15"
2162
+ [#853]:https://github.com/puma/puma/pull/853 "PR by @Jeffrey6052, merged 2016-01-28"
2163
+ [#857]:https://github.com/puma/puma/pull/857 "PR by @osheroff, merged 2016-01-15"
2164
+ [#858]:https://github.com/puma/puma/pull/858 "PR by @mlarraz, merged 2016-01-28"
2165
+ [#860]:https://github.com/puma/puma/pull/860 "PR by @osheroff, merged 2016-01-15"
2166
+ [#861]:https://github.com/puma/puma/pull/861 "PR by @osheroff, merged 2016-01-15"
2167
+ [#818]:https://github.com/puma/puma/pull/818 "PR by @unleashed, merged 2015-11-06"
2168
+ [#819]:https://github.com/puma/puma/pull/819 "PR by @VictorLowther, merged 2015-11-06"
2169
+ [#563]:https://github.com/puma/puma/issues/563 "Issue by @deathbob, closed 2015-11-06"
2170
+ [#803]:https://github.com/puma/puma/issues/803 "Issue by @burningTyger, closed 2016-04-07"
2171
+ [#768]:https://github.com/puma/puma/pull/768 "PR by @nathansamson, merged 2015-11-06"
2172
+ [#773]:https://github.com/puma/puma/pull/773 "PR by @rossta, merged 2015-11-06"
2173
+ [#774]:https://github.com/puma/puma/pull/774 "PR by @snow, merged 2015-11-06"
2174
+ [#781]:https://github.com/puma/puma/pull/781 "PR by @sunsations, merged 2015-11-06"
2175
+ [#791]:https://github.com/puma/puma/pull/791 "PR by @unleashed, merged 2015-10-01"
2176
+ [#793]:https://github.com/puma/puma/pull/793 "PR by @robdimarco, merged 2015-11-06"
2177
+ [#794]:https://github.com/puma/puma/pull/794 "PR by @peterkeen, merged 2015-11-06"
2178
+ [#795]:https://github.com/puma/puma/pull/795 "PR by @unleashed, merged 2015-11-06"
2179
+ [#796]:https://github.com/puma/puma/pull/796 "PR by @cschneid, merged 2015-10-13"
2180
+ [#799]:https://github.com/puma/puma/pull/799 "PR by @annawinkler, merged 2015-11-06"
2181
+ [#800]:https://github.com/puma/puma/pull/800 "PR by @liamseanbrady, merged 2015-11-06"
2182
+ [#801]:https://github.com/puma/puma/pull/801 "PR by @scottjg, merged 2015-11-06"
2183
+ [#802]:https://github.com/puma/puma/pull/802 "PR by @scottjg, merged 2015-11-06"
2184
+ [#804]:https://github.com/puma/puma/pull/804 "PR by @burningTyger, merged 2015-11-06"
2185
+ [#809]:https://github.com/puma/puma/pull/809 "PR by @unleashed, merged 2015-11-06"
2186
+ [#810]:https://github.com/puma/puma/pull/810 "PR by @vlmonk, merged 2015-11-06"
2187
+ [#814]:https://github.com/puma/puma/pull/814 "PR by @schneems, merged 2015-11-04"
2188
+ [#817]:https://github.com/puma/puma/pull/817 "PR by @unleashed, merged 2015-11-06"
2189
+ [#735]:https://github.com/puma/puma/issues/735 "Issue by @trekr5, closed 2015-08-04"
2190
+ [#769]:https://github.com/puma/puma/issues/769 "Issue by @dovestyle, closed 2015-08-16"
2191
+ [#767]:https://github.com/puma/puma/issues/767 "Issue by @kapso, closed 2015-08-15"
2192
+ [#765]:https://github.com/puma/puma/issues/765 "Issue by @monfresh, closed 2015-08-15"
2193
+ [#764]:https://github.com/puma/puma/issues/764 "Issue by @keithpitt, closed 2015-08-15"
2194
+ [#669]:https://github.com/puma/puma/pull/669 "PR by @chulkilee, closed 2015-08-14"
2195
+ [#673]:https://github.com/puma/puma/pull/673 "PR by @chulkilee, closed 2015-08-14"
2196
+ [#668]:https://github.com/puma/puma/pull/668 "PR by @kcollignon, merged 2015-08-14"
2197
+ [#754]:https://github.com/puma/puma/pull/754 "PR by @nathansamson, merged 2015-08-14"
2198
+ [#759]:https://github.com/puma/puma/pull/759 "PR by @BenV, merged 2015-08-14"
2199
+ [#761]:https://github.com/puma/puma/pull/761 "PR by @dmarcotte, merged 2015-08-14"
2200
+ [#742]:https://github.com/puma/puma/pull/742 "PR by @deivid-rodriguez, merged 2015-07-17"
2201
+ [#743]:https://github.com/puma/puma/pull/743 "PR by @matthewd, merged 2015-07-18"
2202
+ [#749]:https://github.com/puma/puma/pull/749 "PR by @huacnlee, merged 2015-08-04"
2203
+ [#751]:https://github.com/puma/puma/pull/751 "PR by @costi, merged 2015-07-31"
2204
+ [#741]:https://github.com/puma/puma/issues/741 "Issue by @GUI, closed 2015-07-17"
2205
+ [#739]:https://github.com/puma/puma/issues/739 "Issue by @hab278, closed 2015-07-17"
2206
+ [#737]:https://github.com/puma/puma/issues/737 "Issue by @dmill, closed 2015-07-16"
2207
+ [#733]:https://github.com/puma/puma/issues/733 "Issue by @Eric-Guo, closed 2015-07-15"
2208
+ [#736]:https://github.com/puma/puma/pull/736 "PR by @paulanunda, merged 2015-07-15"
2209
+ [#722]:https://github.com/puma/puma/issues/722 "Issue by @mikeki, closed 2015-07-14"
2210
+ [#694]:https://github.com/puma/puma/issues/694 "Issue by @yld, closed 2015-06-10"
2211
+ [#705]:https://github.com/puma/puma/issues/705 "Issue by @TheTeaNerd, closed 2015-07-14"
2212
+ [#686]:https://github.com/puma/puma/pull/686 "PR by @jjb, merged 2015-06-10"
2213
+ [#693]:https://github.com/puma/puma/pull/693 "PR by @rob-murray, merged 2015-06-10"
2214
+ [#697]:https://github.com/puma/puma/pull/697 "PR by @spk, merged 2015-06-10"
2215
+ [#699]:https://github.com/puma/puma/pull/699 "PR by @deees, merged 2015-05-19"
2216
+ [#701]:https://github.com/puma/puma/pull/701 "PR by @deepj, merged 2015-05-19"
2217
+ [#702]:https://github.com/puma/puma/pull/702 "PR by @OleMchls, merged 2015-06-10"
2218
+ [#703]:https://github.com/puma/puma/pull/703 "PR by @deepj, merged 2015-06-10"
2219
+ [#704]:https://github.com/puma/puma/pull/704 "PR by @grega, merged 2015-06-10"
2220
+ [#709]:https://github.com/puma/puma/pull/709 "PR by @lian, merged 2015-06-10"
2221
+ [#711]:https://github.com/puma/puma/pull/711 "PR by @julik, merged 2015-06-10"
2222
+ [#712]:https://github.com/puma/puma/pull/712 "PR by @chewi, merged 2015-07-14"
2223
+ [#715]:https://github.com/puma/puma/pull/715 "PR by @0RaymondJiang0, merged 2015-07-14"
2224
+ [#725]:https://github.com/puma/puma/pull/725 "PR by @rwz, merged 2015-07-14"
2225
+ [#726]:https://github.com/puma/puma/pull/726 "PR by @jshafton, merged 2015-07-14"
2226
+ [#729]:https://github.com/puma/puma/pull/729 "PR by @allaire, merged 2015-07-14"
2227
+ [#730]:https://github.com/puma/puma/pull/730 "PR by @iamjarvo, merged 2015-07-14"
2228
+ [#690]:https://github.com/puma/puma/issues/690 "Issue by @bachue, closed 2015-04-21"
2229
+ [#684]:https://github.com/puma/puma/issues/684 "Issue by @tomquas, closed 2015-04-13"
2230
+ [#698]:https://github.com/puma/puma/pull/698 "PR by @dmarcotte, merged 2015-05-04"
2231
+ [#683]:https://github.com/puma/puma/issues/683 "Issue by @indirect, closed 2015-04-11"
2232
+ [#657]:https://github.com/puma/puma/pull/657 "PR by @schneems, merged 2015-02-19"
2233
+ [#658]:https://github.com/puma/puma/pull/658 "PR by @tomohiro, merged 2015-02-23"
2234
+ [#662]:https://github.com/puma/puma/pull/662 "PR by @iaintshine, merged 2015-03-06"
2235
+ [#664]:https://github.com/puma/puma/pull/664 "PR by @fxposter, merged 2015-03-09"
2236
+ [#667]:https://github.com/puma/puma/pull/667 "PR by @JuanitoFatas, merged 2015-03-12"
2237
+ [#672]:https://github.com/puma/puma/pull/672 "PR by @chulkilee, merged 2015-03-15"
2238
+ [#653]:https://github.com/puma/puma/issues/653 "Issue by @dvrensk, closed 2015-02-11"
2239
+ [#644]:https://github.com/puma/puma/pull/644 "PR by @bpaquet, merged 2015-01-29"
2240
+ [#646]:https://github.com/puma/puma/pull/646 "PR by @mkonecny, merged 2015-02-05"
2241
+ [#630]:https://github.com/puma/puma/issues/630 "Issue by @jelmd, closed 2015-01-20"
2242
+ [#622]:https://github.com/puma/puma/issues/622 "Issue by @sabamotto, closed 2015-01-20"
2243
+ [#583]:https://github.com/puma/puma/issues/583 "Issue by @rwojsznis, closed 2015-01-20"
2244
+ [#586]:https://github.com/puma/puma/issues/586 "Issue by @ponchik, closed 2015-01-20"
2245
+ [#359]:https://github.com/puma/puma/issues/359 "Issue by @natew, closed 2014-12-13"
2246
+ [#633]:https://github.com/puma/puma/issues/633 "Issue by @joevandyk, closed 2015-01-20"
2247
+ [#478]:https://github.com/puma/puma/pull/478 "PR by @rubencaro, merged 2015-01-20"
2248
+ [#610]:https://github.com/puma/puma/pull/610 "PR by @kwilczynski, merged 2014-11-27"
2249
+ [#611]:https://github.com/puma/puma/pull/611 "PR by @jasonl, merged 2015-01-20"
2250
+ [#616]:https://github.com/puma/puma/pull/616 "PR by @jc00ke, merged 2014-12-10"
2251
+ [#623]:https://github.com/puma/puma/pull/623 "PR by @raldred, merged 2015-01-20"
2252
+ [#628]:https://github.com/puma/puma/pull/628 "PR by @rdpoor, merged 2015-01-20"
2253
+ [#634]:https://github.com/puma/puma/pull/634 "PR by @deepj, merged 2015-01-20"
2254
+ [#637]:https://github.com/puma/puma/pull/637 "PR by @raskhadafi, merged 2015-01-20"
2255
+ [#639]:https://github.com/puma/puma/pull/639 "PR by @ebeigarts, merged 2015-01-20"
2256
+ [#640]:https://github.com/puma/puma/pull/640 "PR by @bailsman, merged 2015-01-20"
2257
+ [#591]:https://github.com/puma/puma/issues/591 "Issue by @renier, closed 2014-11-24"
2258
+ [#606]:https://github.com/puma/puma/issues/606 "Issue by @, closed 2014-11-24"
2259
+ [#560]:https://github.com/puma/puma/pull/560 "PR by @raskhadafi, merged 2014-11-24"
2260
+ [#566]:https://github.com/puma/puma/pull/566 "PR by @sheltond, merged 2014-11-24"
2261
+ [#593]:https://github.com/puma/puma/pull/593 "PR by @andruby, merged 2014-10-30"
2262
+ [#594]:https://github.com/puma/puma/pull/594 "PR by @hassox, merged 2014-10-31"
2263
+ [#596]:https://github.com/puma/puma/pull/596 "PR by @burningTyger, merged 2014-11-01"
2264
+ [#601]:https://github.com/puma/puma/pull/601 "PR by @sorentwo, merged 2014-11-24"
2265
+ [#602]:https://github.com/puma/puma/pull/602 "PR by @1334, merged 2014-11-24"
2266
+ [#608]:https://github.com/puma/puma/pull/608 "PR by @Gu1, merged 2014-11-24"
2267
+ [#538]:https://github.com/puma/puma/pull/538 "PR by @memiux, merged 2014-11-24"
2268
+ [#550]:https://github.com/puma/puma/issues/550 "Issue by @, closed 2014-10-30"
2269
+ [#549]:https://github.com/puma/puma/pull/549 "PR by @bsnape, merged 2014-10-16"
2270
+ [#553]:https://github.com/puma/puma/pull/553 "PR by @lowjoel, merged 2014-10-16"
2271
+ [#568]:https://github.com/puma/puma/pull/568 "PR by @mariuz, merged 2014-10-16"
2272
+ [#578]:https://github.com/puma/puma/pull/578 "PR by @danielbuechele, merged 2014-10-16"
2273
+ [#581]:https://github.com/puma/puma/pull/581 "PR by @alexch, merged 2014-10-16"
2274
+ [#590]:https://github.com/puma/puma/pull/590 "PR by @dmarcotte, merged 2014-10-16"
2275
+ [#574]:https://github.com/puma/puma/issues/574 "Issue by @minasmart, closed 2014-09-05"
2276
+ [#561]:https://github.com/puma/puma/pull/561 "PR by @krasnoukhov, merged 2014-08-04"
2277
+ [#570]:https://github.com/puma/puma/pull/570 "PR by @havenwood, merged 2014-08-20"
2278
+ [#520]:https://github.com/puma/puma/pull/520 "PR by @misfo, merged 2014-06-16"
2279
+ [#530]:https://github.com/puma/puma/pull/530 "PR by @dmarcotte, merged 2014-06-16"
2280
+ [#537]:https://github.com/puma/puma/pull/537 "PR by @vlmonk, merged 2014-06-16"
2281
+ [#540]:https://github.com/puma/puma/pull/540 "PR by @allaire, merged 2014-05-27"
2282
+ [#544]:https://github.com/puma/puma/pull/544 "PR by @chulkilee, merged 2014-06-03"
2283
+ [#551]:https://github.com/puma/puma/pull/551 "PR by @jcxplorer, merged 2014-07-02"
2284
+ [#487]:https://github.com/puma/puma/pull/487 "PR by @, merged 2014-03-06"
2285
+ [#492]:https://github.com/puma/puma/pull/492 "PR by @, merged 2014-03-06"
2286
+ [#493]:https://github.com/puma/puma/pull/493 "PR by @alepore, merged 2014-03-07"
2287
+ [#503]:https://github.com/puma/puma/pull/503 "PR by @mariuz, merged 2014-04-12"
2288
+ [#505]:https://github.com/puma/puma/pull/505 "PR by @sammcj, merged 2014-04-12"
2289
+ [#506]:https://github.com/puma/puma/pull/506 "PR by @dsander, merged 2014-04-12"
2290
+ [#510]:https://github.com/puma/puma/pull/510 "PR by @momer, merged 2014-04-12"
2291
+ [#511]:https://github.com/puma/puma/pull/511 "PR by @macool, merged 2014-04-12"
2292
+ [#514]:https://github.com/puma/puma/pull/514 "PR by @nanaya, merged 2014-04-12"
2293
+ [#517]:https://github.com/puma/puma/pull/517 "PR by @misfo, merged 2014-04-12"
2294
+ [#518]:https://github.com/puma/puma/pull/518 "PR by @alxgsv, merged 2014-04-12"
2295
+ [#471]:https://github.com/puma/puma/pull/471 "PR by @arthurnn, merged 2014-02-28"
2296
+ [#485]:https://github.com/puma/puma/pull/485 "PR by @runlevel5, merged 2014-03-01"
2297
+ [#486]:https://github.com/puma/puma/pull/486 "PR by @joshwlewis, merged 2014-03-02"
2298
+ [#490]:https://github.com/puma/puma/pull/490 "PR by @tobinibot, merged 2014-03-06"
2299
+ [#491]:https://github.com/puma/puma/pull/491 "PR by @brianknight10, merged 2014-03-06"
2300
+ [#438]:https://github.com/puma/puma/issues/438 "Issue by @mperham, closed 2014-01-25"
2301
+ [#333]:https://github.com/puma/puma/issues/333 "Issue by @SamSaffron, closed 2014-01-26"
2302
+ [#440]:https://github.com/puma/puma/issues/440 "Issue by @sudara, closed 2014-01-25"
2303
+ [#449]:https://github.com/puma/puma/issues/449 "Issue by @cezarsa, closed 2014-02-04"
2304
+ [#444]:https://github.com/puma/puma/issues/444 "Issue by @le0pard, closed 2014-01-25"
2305
+ [#370]:https://github.com/puma/puma/issues/370 "Issue by @pelcasandra, closed 2014-01-26"
2306
+ [#377]:https://github.com/puma/puma/issues/377 "Issue by @mrbrdo, closed 2014-01-26"
2307
+ [#406]:https://github.com/puma/puma/issues/406 "Issue by @simonrussell, closed 2014-01-25"
2308
+ [#425]:https://github.com/puma/puma/issues/425 "Issue by @jhass, closed 2014-01-26"
2309
+ [#432]:https://github.com/puma/puma/pull/432 "PR by @anatol, closed 2014-01-25"
2310
+ [#428]:https://github.com/puma/puma/pull/428 "PR by @alexeyfrank, merged 2014-01-25"
2311
+ [#429]:https://github.com/puma/puma/pull/429 "PR by @namusyaka, merged 2013-12-16"
2312
+ [#431]:https://github.com/puma/puma/pull/431 "PR by @mrb, merged 2014-01-25"
2313
+ [#433]:https://github.com/puma/puma/pull/433 "PR by @alepore, merged 2014-02-28"
2314
+ [#437]:https://github.com/puma/puma/pull/437 "PR by @ibrahima, merged 2014-01-25"
2315
+ [#446]:https://github.com/puma/puma/pull/446 "PR by @sudara, merged 2014-01-27"
2316
+ [#451]:https://github.com/puma/puma/pull/451 "PR by @pwiebe, merged 2014-02-04"
2317
+ [#453]:https://github.com/puma/puma/pull/453 "PR by @joevandyk, merged 2014-02-28"
2318
+ [#470]:https://github.com/puma/puma/pull/470 "PR by @arthurnn, merged 2014-02-28"
2319
+ [#472]:https://github.com/puma/puma/pull/472 "PR by @rubencaro, merged 2014-02-21"
2320
+ [#480]:https://github.com/puma/puma/pull/480 "PR by @jjb, merged 2014-02-26"
2321
+ [#481]:https://github.com/puma/puma/pull/481 "PR by @schneems, merged 2014-02-25"
2322
+ [#482]:https://github.com/puma/puma/pull/482 "PR by @prathamesh-sonpatki, merged 2014-02-26"
2323
+ [#483]:https://github.com/puma/puma/pull/483 "PR by @maxilev, merged 2014-02-26"
2324
+ [#422]:https://github.com/puma/puma/issues/422 "Issue by @alexandru-calinoiu, closed 2013-12-05"
2325
+ [#334]:https://github.com/puma/puma/issues/334 "Issue by @srgpqt, closed 2013-07-18"
2326
+ [#179]:https://github.com/puma/puma/issues/179 "Issue by @betelgeuse, closed 2013-07-18"
2327
+ [#332]:https://github.com/puma/puma/issues/332 "Issue by @SamSaffron, closed 2013-07-18"
2328
+ [#317]:https://github.com/puma/puma/issues/317 "Issue by @masterkain, closed 2013-07-11"
2329
+ [#309]:https://github.com/puma/puma/issues/309 "Issue by @masterkain, closed 2013-07-09"
2330
+ [#166]:https://github.com/puma/puma/issues/166 "Issue by @emassip, closed 2013-07-06"
2331
+ [#292]:https://github.com/puma/puma/issues/292 "Issue by @pulse00, closed 2013-07-06"
2332
+ [#274]:https://github.com/puma/puma/issues/274 "Issue by @mrbrdo, closed 2013-07-06"
2333
+ [#304]:https://github.com/puma/puma/issues/304 "Issue by @nandosola, closed 2013-07-06"
2334
+ [#287]:https://github.com/puma/puma/issues/287 "Issue by @runlevel5, closed 2013-07-06"
2335
+ [#256]:https://github.com/puma/puma/issues/256 "Issue by @rkh, closed 2013-07-01"
2336
+ [#285]:https://github.com/puma/puma/issues/285 "Issue by @mkwiatkowski, closed 2013-06-20"
2337
+ [#270]:https://github.com/puma/puma/issues/270 "Issue by @iamroody, closed 2013-06-01"
2338
+ [#246]:https://github.com/puma/puma/issues/246 "Issue by @amencarini, closed 2013-06-01"
2339
+ [#278]:https://github.com/puma/puma/issues/278 "Issue by @titanous, closed 2013-06-18"
2340
+ [#251]:https://github.com/puma/puma/issues/251 "Issue by @cure, closed 2013-06-18"
2341
+ [#252]:https://github.com/puma/puma/issues/252 "Issue by @vixns, closed 2013-06-01"
2342
+ [#234]:https://github.com/puma/puma/issues/234 "Issue by @jgarber, closed 2013-04-08"
2343
+ [#228]:https://github.com/puma/puma/issues/228 "Issue by @joelmats, closed 2013-04-29"
2344
+ [#192]:https://github.com/puma/puma/issues/192 "Issue by @steverandy, closed 2013-02-09"
2345
+ [#206]:https://github.com/puma/puma/issues/206 "Issue by @moll, closed 2013-03-19"
2346
+ [#154]:https://github.com/puma/puma/issues/154 "Issue by @trevor, closed 2013-03-19"
2347
+ [#208]:https://github.com/puma/puma/issues/208 "Issue by @ochronus, closed 2013-03-18"
2348
+ [#189]:https://github.com/puma/puma/issues/189 "Issue by @tolot27, closed 2013-02-09"
2349
+ [#185]:https://github.com/puma/puma/issues/185 "Issue by @nicolai86, closed 2013-02-06"
2350
+ [#182]:https://github.com/puma/puma/issues/182 "Issue by @sriedel, closed 2013-02-05"
2351
+ [#183]:https://github.com/puma/puma/issues/183 "Issue by @concept47, closed 2013-02-05"
2352
+ [#176]:https://github.com/puma/puma/issues/176 "Issue by @cryo28, closed 2013-02-05"
2353
+ [#180]:https://github.com/puma/puma/issues/180 "Issue by @tscolari, closed 2013-02-05"
2354
+ [#170]:https://github.com/puma/puma/issues/170 "Issue by @nixme, closed 2012-11-29"
2355
+ [#148]:https://github.com/puma/puma/issues/148 "Issue by @rafaelss, closed 2012-11-18"
2356
+ [#128]:https://github.com/puma/puma/issues/128 "Issue by @fbjork, closed 2012-10-20"
2357
+ [#155]:https://github.com/puma/puma/issues/155 "Issue by @ehlertij, closed 2012-10-13"
2358
+ [#123]:https://github.com/puma/puma/pull/123 "PR by @jcoene, closed 2012-07-19"
2359
+ [#111]:https://github.com/puma/puma/pull/111 "PR by @kenkeiter, closed 2012-07-19"
2360
+ [#98]:https://github.com/puma/puma/pull/98 "PR by @Flink, closed 2012-05-15"
2361
+ [#94]:https://github.com/puma/puma/issues/94 "Issue by @ender672, closed 2012-05-08"
2362
+ [#84]:https://github.com/puma/puma/issues/84 "Issue by @sigursoft, closed 2012-04-29"
2363
+ [#78]:https://github.com/puma/puma/issues/78 "Issue by @dstrelau, closed 2012-04-28"
2364
+ [#79]:https://github.com/puma/puma/issues/79 "Issue by @jammi, closed 2012-04-28"
2365
+ [#65]:https://github.com/puma/puma/issues/65 "Issue by @bporterfield, closed 2012-04-11"
2366
+ [#54]:https://github.com/puma/puma/issues/54 "Issue by @masterkain, closed 2012-04-10"
2367
+ [#58]:https://github.com/puma/puma/pull/58 "PR by @paneq, closed 2012-04-10"
2368
+ [#61]:https://github.com/puma/puma/issues/61 "Issue by @dustalov, closed 2012-04-10"
2369
+ [#63]:https://github.com/puma/puma/issues/63 "Issue by @seamusabshere, closed 2012-04-11"
2370
+ [#60]:https://github.com/puma/puma/issues/60 "Issue by @paneq, closed 2012-04-11"
2371
+ [#53]:https://github.com/puma/puma/pull/53 "PR by @sxua, closed 2012-04-11"