puma 3.0.0.rc1 → 5.0.0.beta1

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 (91) hide show
  1. checksums.yaml +5 -5
  2. data/{History.txt → History.md} +703 -70
  3. data/LICENSE +23 -20
  4. data/README.md +173 -163
  5. data/docs/architecture.md +37 -0
  6. data/{DEPLOYMENT.md → docs/deployment.md} +28 -6
  7. data/docs/fork_worker.md +31 -0
  8. data/docs/images/puma-connection-flow-no-reactor.png +0 -0
  9. data/docs/images/puma-connection-flow.png +0 -0
  10. data/docs/images/puma-general-arch.png +0 -0
  11. data/docs/jungle/README.md +13 -0
  12. data/docs/jungle/rc.d/README.md +74 -0
  13. data/docs/jungle/rc.d/puma +61 -0
  14. data/docs/jungle/rc.d/puma.conf +10 -0
  15. data/{tools → docs}/jungle/upstart/README.md +0 -0
  16. data/{tools → docs}/jungle/upstart/puma-manager.conf +0 -0
  17. data/{tools → docs}/jungle/upstart/puma.conf +1 -1
  18. data/docs/nginx.md +2 -2
  19. data/docs/plugins.md +38 -0
  20. data/docs/restart.md +41 -0
  21. data/docs/signals.md +57 -3
  22. data/docs/systemd.md +228 -0
  23. data/ext/puma_http11/PumaHttp11Service.java +2 -2
  24. data/ext/puma_http11/extconf.rb +16 -0
  25. data/ext/puma_http11/http11_parser.c +287 -468
  26. data/ext/puma_http11/http11_parser.h +1 -0
  27. data/ext/puma_http11/http11_parser.java.rl +21 -37
  28. data/ext/puma_http11/http11_parser.rl +10 -9
  29. data/ext/puma_http11/http11_parser_common.rl +4 -4
  30. data/ext/puma_http11/mini_ssl.c +159 -10
  31. data/ext/puma_http11/org/jruby/puma/Http11.java +108 -116
  32. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +99 -132
  33. data/ext/puma_http11/org/jruby/puma/MiniSSL.java +30 -6
  34. data/ext/puma_http11/puma_http11.c +6 -38
  35. data/lib/puma.rb +25 -5
  36. data/lib/puma/accept_nonblock.rb +7 -1
  37. data/lib/puma/app/status.rb +53 -26
  38. data/lib/puma/binder.rb +150 -119
  39. data/lib/puma/cli.rb +56 -38
  40. data/lib/puma/client.rb +277 -80
  41. data/lib/puma/cluster.rb +326 -130
  42. data/lib/puma/commonlogger.rb +21 -20
  43. data/lib/puma/configuration.rb +160 -161
  44. data/lib/puma/const.rb +50 -47
  45. data/lib/puma/control_cli.rb +104 -63
  46. data/lib/puma/detect.rb +13 -1
  47. data/lib/puma/dsl.rb +463 -114
  48. data/lib/puma/events.rb +22 -13
  49. data/lib/puma/io_buffer.rb +9 -5
  50. data/lib/puma/jruby_restart.rb +2 -59
  51. data/lib/puma/launcher.rb +195 -105
  52. data/lib/puma/minissl.rb +110 -4
  53. data/lib/puma/minissl/context_builder.rb +76 -0
  54. data/lib/puma/null_io.rb +9 -14
  55. data/lib/puma/plugin.rb +32 -12
  56. data/lib/puma/plugin/tmp_restart.rb +19 -6
  57. data/lib/puma/rack/builder.rb +7 -5
  58. data/lib/puma/rack/urlmap.rb +11 -8
  59. data/lib/puma/rack_default.rb +2 -0
  60. data/lib/puma/reactor.rb +242 -32
  61. data/lib/puma/runner.rb +41 -30
  62. data/lib/puma/server.rb +265 -183
  63. data/lib/puma/single.rb +22 -63
  64. data/lib/puma/state_file.rb +9 -2
  65. data/lib/puma/thread_pool.rb +179 -68
  66. data/lib/puma/util.rb +3 -11
  67. data/lib/rack/handler/puma.rb +60 -11
  68. data/tools/Dockerfile +16 -0
  69. data/tools/trickletest.rb +1 -2
  70. metadata +35 -99
  71. data/COPYING +0 -55
  72. data/Gemfile +0 -13
  73. data/Manifest.txt +0 -79
  74. data/Rakefile +0 -158
  75. data/docs/config.md +0 -0
  76. data/ext/puma_http11/io_buffer.c +0 -155
  77. data/lib/puma/capistrano.rb +0 -94
  78. data/lib/puma/compat.rb +0 -18
  79. data/lib/puma/convenient.rb +0 -23
  80. data/lib/puma/daemon_ext.rb +0 -31
  81. data/lib/puma/delegation.rb +0 -11
  82. data/lib/puma/java_io_buffer.rb +0 -45
  83. data/lib/puma/rack/backports/uri/common_18.rb +0 -56
  84. data/lib/puma/rack/backports/uri/common_192.rb +0 -52
  85. data/lib/puma/rack/backports/uri/common_193.rb +0 -29
  86. data/lib/puma/tcp_logger.rb +0 -32
  87. data/puma.gemspec +0 -52
  88. data/tools/jungle/README.md +0 -9
  89. data/tools/jungle/init.d/README.md +0 -54
  90. data/tools/jungle/init.d/puma +0 -394
  91. data/tools/jungle/init.d/run-puma +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ec0eeb5886074470b19df49db748d9fad55c57c6
4
- data.tar.gz: 74521d8b05a10a149cf6aa0fb4dc4c7e199ab124
2
+ SHA256:
3
+ metadata.gz: d624c4973e123e4b085bd0080a85d76c996f26743dde5d8e55ca4f3971e6d77a
4
+ data.tar.gz: 8f3ebe99584b845456708a73ae5305b012058c09af0a5e75bead0322c1c8501c
5
5
  SHA512:
6
- metadata.gz: d64e58108913abf1b2252ba3038553ec28c82cfe96aa8812de7bdc58215881aea90a1048b490cee8699df99c73f3ea2b9d1dd3b472d082fbcc7974003c79e16c
7
- data.tar.gz: 35befe3e0a9d01fa14f58841ecbcef2fa84a99ba8b3c564ceacb99101e52d50a855c7ab65c983caf816a09bf5547fb35b4e6f111985bea1cb5940e46a01b4dc8
6
+ metadata.gz: 1dbaeeb104fa56b185b1b647fc865a3b25eb621dba523dba15d056bef66137279fbb57545330ab3f486e610a88ed487f3ccf2e6f0b9c75de12522dc9db9b0029
7
+ data.tar.gz: 1b2f86bb5275f3764b891da8c3bc3643e1544d7209385aae8d87b5aa572945ceb627ef70df23060bc27abc9714b16377b8fa371b3ac3a10738e76cbd69f88841
@@ -1,4 +1,628 @@
1
- === 2.16.0 / 2016-01-27
1
+ ## 5.0.0
2
+
3
+ * Features
4
+ * EXPERIMENTAL: Add `fork_worker` option and `refork` command for reduced memory usage by forking from a worker process instead of the master process. (#2099)
5
+ * 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).
6
+ * EXPERIMENTAL: Added `nakayoshi_fork` option. Reduce memory usage in preloaded cluster-mode apps by GCing before fork and compacting, where available. (#2093, #2256)
7
+ * Added pumactl `thread-backtraces` command to print thread backtraces (#2054)
8
+ * Added incrementing `requests_count` to `Puma.stats`. (#2106)
9
+ * Increased maximum URI path length from 2048 to 8196 bytes (#2167)
10
+ * `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)
11
+ * Faster phased restart and worker timeout (#2220)
12
+ * Added `state_permission` to config DSL to set state file permissions (#2238)
13
+ * Added `Puma.stats_hash`, which returns a stats in Hash instead of a JSON string (#2086, #2253)
14
+
15
+ * Deprecations, Removals and Breaking API Changes
16
+ * `--control` has been removed. Use `--control-url` (#1487)
17
+ * `worker_directory` has been removed. Use `directory`.
18
+ * min_threads now set by environment variables PUMA_MIN_THREADS and MIN_THREADS. (#2143)
19
+ * max_threads now set by environment variables PUMA_MAX_THREADS and MAX_THREADS. (#2143)
20
+ * max_threads default to 5 in MRI or 16 for all other interpreters. (#2143)
21
+ * preload by default if workers > 1 (#2143)
22
+ * Puma::Plugin.workers_supported? has been removed. Use Puma.forkable? instead. (#2143)
23
+ * `tcp_mode` has been removed without replacement. (#2169)
24
+ * Daemonization has been removed without replacement. (#2170)
25
+ * Changed #connected_port to #connected_ports (#2076)
26
+ * Configuration: `environment` is read from `RAILS_ENV`, if `RACK_ENV` can't be found (#2022)
27
+
28
+ * Bugfixes
29
+ * Do not set user_config to quiet by default to allow for file config (#2074)
30
+ * Always close SSL connection in Puma::ControlCLI (#2211)
31
+ * Windows update extconf.rb for use with ssp and varied Ruby/MSYS2 combinations (#2069)
32
+ * Ensure control server Unix socket is closed on shutdown (#2112)
33
+ * Preserve `BUNDLE_GEMFILE` env var when using `prune_bundler` (#1893)
34
+ * Send 408 request timeout even when queue requests is disabled (#2119)
35
+ * Rescue IO::WaitReadable instead of EAGAIN for blocking read (#2121)
36
+ * Ensure `BUNDLE_GEMFILE` is unspecified in workers if unspecified in master when using `prune_bundler` (#2154)
37
+ * Rescue and log exceptions in hooks defined by users (on_worker_boot, after_worker_fork etc) (#1551)
38
+ * Read directly from the socket in #read_and_drop to avoid raising further SSL errors (#2198)
39
+ * Set `Connection: closed` header when queue requests is disabled (#2216)
40
+ * Pass queued requests to thread pool on server shutdown (#2122)
41
+ * Fixed a few minor concurrency bugs in ThreadPool that may have affected non-GVL Rubies (#2220)
42
+ * Fix `out_of_band` hook never executed if the number of worker threads is > 1 (#2177)
43
+ * Fix ThreadPool#shutdown timeout accuracy (#2221)
44
+ * Fix `UserFileDefaultOptions#fetch` to properly use `default` (#2233)
45
+ * Improvements to `out_of_band` hook (#2234)
46
+ * Prefer the rackup file specified by the CLI (#2225)
47
+
48
+ * Refactor
49
+ * Remove unused loader argument from Plugin initializer (#2095)
50
+ * Simplify `Configuration.random_token` and remove insecure fallback (#2102)
51
+ * Simplify `Runner#start_control` URL parsing (#2111)
52
+ * Removed the IOBuffer extension and replaced with Ruby (#1980)
53
+ * Update `Rack::Handler::Puma.run` to use `**options` (#2189)
54
+ * ThreadPool concurrency refactoring (#2220)
55
+ * JSON parse cluster worker stats instead of regex (#2124)
56
+ * Support parallel tests in verbose progress reporting (#2223)
57
+
58
+ ## 4.3.3 and 3.12.4 / 2020-02-28
59
+
60
+ * Bugfixes
61
+ * Fix: Fixes a problem where we weren't splitting headers correctly on newlines (#2132)
62
+ * Security
63
+ * Fix: Prevent HTTP Response splitting via CR in early hints. CVE-2020-5249.
64
+
65
+ ## 4.3.2 and 3.12.3 / 2020-02-27 (YANKED)
66
+
67
+ * Security
68
+ * Fix: Prevent HTTP Response splitting via CR/LF in header values. CVE-2020-5247.
69
+
70
+ ## 4.3.1 and 3.12.2 / 2019-12-05
71
+
72
+ * Security
73
+ * Fix: a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. CVE-2019-16770.
74
+
75
+ ## 4.3.0 / 2019-11-07
76
+
77
+ * Features
78
+ * Strip whitespace at end of HTTP headers (#2010)
79
+ * Optimize HTTP parser for JRuby (#2012)
80
+ * Add SSL support for the control app and cli (#2046, #2052)
81
+
82
+ * Bugfixes
83
+ * Fix Errno::EINVAL when SSL is enabled and browser rejects cert (#1564)
84
+ * Fix pumactl defaulting puma to development if an environment was not specified (#2035)
85
+ * Fix closing file stream when reading pid from pidfile (#2048)
86
+ * Fix a typo in configuration option `--extra_runtime_dependencies` (#2050)
87
+
88
+ ## 4.2.1 / 2019-10-07
89
+
90
+ * 3 bugfixes
91
+ * Fix socket activation of systemd (pre-existing) unix binder files (#1842, #1988)
92
+ * Deal with multiple calls to bind correctly (#1986, #1994, #2006)
93
+ * Accepts symbols for `verify_mode` (#1222)
94
+
95
+ ## 4.2.0 / 2019-09-23
96
+
97
+ * 6 features
98
+ * Pumactl has a new -e environment option and reads `config/puma/<environment>.rb` config files (#1885)
99
+ * Semicolons are now allowed in URL paths (MRI only), useful for Angular or Redmine (#1934)
100
+ * Allow extra dependencies to be defined when using prune_bundler (#1105)
101
+ * Puma now reports the correct port when binding to port 0, also reports other listeners when binding to localhost (#1786)
102
+ * Sending SIGINFO to any Puma worker now prints currently active threads and their backtraces (#1320)
103
+ * Puma threads all now have their name set on Ruby 2.3+ (#1968)
104
+ * 4 bugfixes
105
+ * Fix some misbehavior with phased restart and externally SIGTERMed workers (#1908, #1952)
106
+ * Fix socket closing on error (#1941)
107
+ * Removed unnecessary SIGINT trap for JRuby that caused some race conditions (#1961)
108
+ * Fix socket files being left around after process stopped (#1970)
109
+ * Absolutely thousands of lines of test improvements and fixes thanks to @MSP-Greg
110
+
111
+ ## 4.1.1 / 2019-09-05
112
+
113
+ * 3 bugfixes
114
+ * Revert our attempt to not dup STDOUT/STDERR (#1946)
115
+ * Fix socket close on error (#1941)
116
+ * Fix workers not shutting down correctly (#1908)
117
+
118
+ ## 4.1.0 / 2019-08-08
119
+
120
+ * 4 features
121
+ * Add REQUEST_PATH on parse error message (#1831)
122
+ * You can now easily add custom log formatters with the `log_formatter` config option (#1816)
123
+ * Puma.stats now provides process start times (#1844)
124
+ * Add support for disabling TLSv1.1 (#1836)
125
+
126
+ * 7 bugfixes
127
+ * Fix issue where Puma was creating zombie process entries (#1887)
128
+ * Fix bugs with line-endings and chunked encoding (#1812)
129
+ * RACK_URL_SCHEME is now set correctly in all conditions (#1491)
130
+ * We no longer mutate global STDOUT/STDERR, particularly the sync setting (#1837)
131
+ * SSL read_nonblock no longer blocks (#1857)
132
+ * Swallow connection errors when sending early hints (#1822)
133
+ * Backtrace no longer dumped when invalid pumactl commands are run (#1863)
134
+
135
+ * 5 other
136
+ * Avoid casting worker_timeout twice (#1838)
137
+ * Removed a call to private that wasn't doing anything (#1882)
138
+ * README, Rakefile, docs and test cleanups (#1848, #1847, #1846, #1853, #1859, #1850, #1866, #1870, #1872, #1833, #1888)
139
+ * Puma.io has proper documentation now (https://puma.io/puma/)
140
+ * Added the Contributor Covenant CoC
141
+
142
+ * 1 known issue
143
+ * Some users are still experiencing issues surrounding socket activation and Unix sockets (#1842)
144
+
145
+ ## 4.0.1 / 2019-07-11
146
+
147
+ * 2 bugfixes
148
+ * Fix socket removed after reload - should fix problems with systemd socket activation. (#1829)
149
+ * 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)
150
+ * 1 other
151
+ * Removed unnecessary RUBY_VERSION checks. (#1827)
152
+
153
+ ## 4.0.0 / 2019-06-25
154
+
155
+ * 9 features
156
+ * Add support for disabling TLSv1.0 (#1562)
157
+ * Request body read time metric (#1569)
158
+ * Add out_of_band hook (#1648)
159
+ * Re-implement (native) IOBuffer for JRuby (#1691)
160
+ * Min worker timeout (#1716)
161
+ * Add option to suppress SignalException on SIGTERM (#1690)
162
+ * Allow mutual TLS CA to be set using `ssl_bind` DSL (#1689)
163
+ * Reactor now uses nio4r instead of `select` (#1728)
164
+ * Add status to pumactl with pidfile (#1824)
165
+
166
+ * 10 bugfixes
167
+ * Do not accept new requests on shutdown (#1685, #1808)
168
+ * Fix 3 corner cases when request body is chunked (#1508)
169
+ * Change pid existence check's condition branches (#1650)
170
+ * Don't call .stop on a server that doesn't exist (#1655)
171
+ * Implemented NID_X9_62_prime256v1 (P-256) curve over P-521 (#1671)
172
+ * Fix @notify.close can't modify frozen IOError (RuntimeError) (#1583)
173
+ * Fix Java 8 support (#1773)
174
+ * Fix error `uninitialized constant Puma::Cluster` (#1731)
175
+ * Fix `not_token` being able to be set to true (#1803)
176
+ * Fix "Hang on SIGTERM with ruby 2.6 in clustered mode" ([PR #1741], [#1674], [#1720], [#1730], [#1755])
177
+
178
+ [PR #1741]: https://github.com/puma/puma/pull/1741
179
+ [#1674]: https://github.com/puma/puma/issues/1674
180
+ [#1720]: https://github.com/puma/puma/issues/1720
181
+ [#1730]: https://github.com/puma/puma/issues/1730
182
+ [#1755]: https://github.com/puma/puma/issues/1755
183
+
184
+ ## 3.12.1 / 2019-03-19
185
+
186
+ * 1 features
187
+ * Internal strings are frozen (#1649)
188
+ * 3 bugfixes
189
+ * Fix chunked ending check (#1607)
190
+ * Rack handler should use provided default host (#1700)
191
+ * Better support for detecting runtimes that support `fork` (#1630)
192
+
193
+ ## 3.12.0 / 2018-07-13
194
+
195
+ * 5 features:
196
+ * You can now specify which SSL ciphers the server should support, default is unchanged (#1478)
197
+ * The setting for Puma's `max_threads` is now in `Puma.stats` (#1604)
198
+ * Pool capacity is now in `Puma.stats` (#1579)
199
+ * Installs restricted to Ruby 2.2+ (#1506)
200
+ * `--control` is now deprecated in favor of `--control-url` (#1487)
201
+
202
+ * 2 bugfixes:
203
+ * 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)
204
+ * In a test env puma now emits the stack on an exception (#1557)
205
+
206
+ ## 3.11.4 / 2018-04-12
207
+
208
+ * 2 features:
209
+ * Manage puma as a service using rc.d (#1529)
210
+ * Server stats are now available from a top level method (#1532)
211
+ * 5 bugfixes:
212
+ * Fix parsing CLI options (#1482)
213
+ * Order of stderr and stdout is made before redirecting to a log file (#1511)
214
+ * Init.d fix of `ps -p` to check if pid exists (#1545)
215
+ * Early hints bugfix (#1550)
216
+ * Purge interrupt queue when closing socket fails (#1553)
217
+
218
+ ## 3.11.3 / 2018-03-05
219
+
220
+ * 3 bugfixes:
221
+ * Add closed? to MiniSSL::Socket for use in reactor (#1510)
222
+ * Handle EOFError at the toplevel of the server threads (#1524) (#1507)
223
+ * Deal with zero sized bodies when using SSL (#1483)
224
+
225
+ ## 3.11.2 / 2018-01-19
226
+
227
+ * 1 bugfix:
228
+ * Deal with read\_nonblock returning nil early
229
+
230
+ ## 3.11.1 / 2018-01-18
231
+
232
+ * 1 bugfix:
233
+ * Handle read\_nonblock returning nil when the socket close (#1502)
234
+
235
+ ## 3.11.0 / 2017-11-20
236
+
237
+ * 2 features:
238
+ * HTTP 103 Early Hints (#1403)
239
+ * 421/451 status codes now have correct status messages attached (#1435)
240
+
241
+ * 9 bugfixes:
242
+ * Environment config files (/config/puma/<ENV>.rb) load correctly (#1340)
243
+ * Specify windows dependencies correctly (#1434, #1436)
244
+ * puma/events required in test helper (#1418)
245
+ * Correct control CLI's option help text (#1416)
246
+ * Remove a warning for unused variable in mini_ssl (#1409)
247
+ * Correct pumactl docs argument ordering (#1427)
248
+ * Fix an uninitialized variable warning in server.rb (#1430)
249
+ * Fix docs typo/error in Launcher init (#1429)
250
+ * Deal with leading spaces in RUBYOPT (#1455)
251
+
252
+ * 2 other:
253
+ * Add docs about internals (#1425, #1452)
254
+ * Tons of test fixes from @MSP-Greg (#1439, #1442, #1464)
255
+
256
+ ## 3.10.0 / 2017-08-17
257
+
258
+ * 3 features:
259
+ * The status server has a new /gc and /gc-status command. (#1384)
260
+ * The persistent and first data timeouts are now configurable (#1111)
261
+ * Implemented RFC 2324 (#1392)
262
+
263
+ * 12 bugfixes:
264
+ * 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)
265
+ * Fix hangups with SSL and persistent connections. (#1334)
266
+ * Fix Rails double-binding to a port (#1383)
267
+ * Fix incorrect thread names (#1368)
268
+ * Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. (#1318)
269
+ * Fix compatibility with RUBYOPT="--enable-frozen-string-literal" (#1376)
270
+ * Fixed some compiler warnings (#1388)
271
+ * We actually run the integration tests in CI now (#1390)
272
+ * No longer shipping unnecessary directories in the gemfile (#1391)
273
+ * If RUBYOPT is nil, we no longer blow up on restart. (#1385)
274
+ * Correct response to SIGINT (#1377)
275
+ * Proper exit code returned when we receive a TERM signal (#1337)
276
+
277
+ * 3 refactors:
278
+ * Various test improvements from @grosser
279
+ * Rubocop (#1325)
280
+ * Hoe has been removed (#1395)
281
+
282
+ * 1 known issue:
283
+ * Socket activation doesn't work in JRuby. Their fault, not ours. (#1367)
284
+
285
+ ## 3.9.1 / 2017-06-03
286
+
287
+ * 2 bugfixes:
288
+ * Fixed compatibility with older Bundler versions (#1314)
289
+ * Some internal test/development cleanup (#1311, #1313)
290
+
291
+ ## 3.9.0 / 2017-06-01
292
+
293
+ * 2 features:
294
+ * The ENV is now reset to its original values when Puma restarts via USR1/USR2 (#1260) (MRI only, no JRuby support)
295
+ * Puma will no longer accept more clients than the maximum number of threads. (#1278)
296
+
297
+ * 9 bugfixes:
298
+ * Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR (#1306)
299
+ * Fix SSL/WebSocket compatibility (#1274)
300
+ * HTTP headers with empty values are no longer omitted from responses. (#1261)
301
+ * Fix a Rack env key which was set to nil. (#1259)
302
+ * peercert has been implemented for JRuby (#1248)
303
+ * Fix port settings when using rails s (#1277, #1290)
304
+ * Fix compat w/LibreSSL (#1285)
305
+ * Fix restarting Puma w/symlinks and a new Gemfile (#1282)
306
+ * Replace Dir.exists? with Dir.exist? (#1294)
307
+
308
+ * 1 known issue:
309
+ * 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.
310
+
311
+ * 1 refactor:
312
+ * Lots of test fixups from @grosser.
313
+
314
+ ## 3.8.2 / 2017-03-14
315
+
316
+ * 1 bugfix:
317
+ * Deal with getsockopt with TCP\_INFO failing for sockets that say they're TCP but aren't really. (#1241)
318
+
319
+ ## 3.8.1 / 2017-03-10
320
+
321
+ * 1 bugfix:
322
+ * Remove method call to method that no longer exists (#1239)
323
+
324
+ ## 3.8.0 / 2017-03-09
325
+
326
+ * 2 bugfixes:
327
+ * Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ (#1234)
328
+ * The `tmp/restart.txt` plugin no longer restricts the user from running more than one server from the same folder at a time (#1226)
329
+
330
+ * 1 feature:
331
+ * Closed clients are aborted to save capacity (#1227)
332
+
333
+ * 1 refactor:
334
+ * Bundler is no longer a dependency from tests (#1213)
335
+
336
+ ## 3.7.1 / 2017-02-20
337
+
338
+ * 2 bugfixes:
339
+ * Fix typo which blew up MiniSSL (#1182)
340
+ * Stop overriding command-line options with the config file (#1203)
341
+
342
+ ## 3.7.0 / 2017-01-04
343
+
344
+ * 6 minor features:
345
+ * Allow rack handler to accept ssl host. (#1129)
346
+ * Refactor TTOU processing. TTOU now handles multiple signals at once. (#1165)
347
+ * Pickup any remaining chunk data as the next request.
348
+ * Prevent short term thread churn - increased auto trim default to 30 seconds.
349
+ * Raise error when `stdout` or `stderr` is not writable. (#1175)
350
+ * Add Rack 2.0 support to gemspec. (#1068)
351
+
352
+ * 5 refactors:
353
+ * Compare host and server name only once per call. (#1091)
354
+ * Minor refactor on Thread pool (#1088)
355
+ * Removed a ton of unused constants, variables and files.
356
+ * Use MRI macros when allocating heap memory
357
+ * Use hooks for on\_booted event. (#1160)
358
+
359
+ * 14 bugfixes:
360
+ * Add eof? method to NullIO? (#1169)
361
+ * Fix Puma startup in provided init.d script (#1061)
362
+ * Fix default SSL mode back to none. (#1036)
363
+ * Fixed the issue of @listeners getting nil io (#1120)
364
+ * Make `get_dh1024` compatible with OpenSSL v1.1.0 (#1178)
365
+ * More gracefully deal with SSL sessions. Fixes #1002
366
+ * Move puma.rb to just autoloads. Fixes #1063
367
+ * MiniSSL: Provide write as <<. Fixes #1089
368
+ * Prune bundler should inherit fds (#1114)
369
+ * Replace use of Process.getpgid which does not behave as intended on all platforms (#1110)
370
+ * Transfer encoding header should be downcased before comparison (#1135)
371
+ * Use same write log logic for hijacked requests. (#1081)
372
+ * Fix `uninitialized constant Puma::StateFile` (#1138)
373
+ * Fix access priorities of each level in LeveledOptions (#1118)
374
+
375
+ * 3 others:
376
+
377
+ * Lots of tests added/fixed/improved. Switched to Minitest from Test::Unit. Big thanks to @frodsan.
378
+ * Lots of documentation added/improved.
379
+ * Add license indicators to the HTTP extension. (#1075)
380
+
381
+ ## 3.6.2 / 2016-11-22
382
+
383
+ * 1 bug fix:
384
+
385
+ * Revert #1118/Fix access priorities of each level in LeveledOptions. This
386
+ had an unintentional side effect of changing the importance of command line
387
+ options, such as -p.
388
+
389
+ ## 3.6.1 / 2016-11-21
390
+
391
+ * 8 bug fixes:
392
+
393
+ * Fix Puma start in init.d script.
394
+ * Fix default SSL mode back to none. Fixes #1036
395
+ * Fixed the issue of @listeners getting nil io, fix rails restart (#1120)
396
+ * More gracefully deal with SSL sessions. Fixes #1002
397
+ * Prevent short term thread churn.
398
+ * Provide write as <<. Fixes #1089
399
+ * Fix access priorities of each level in LeveledOptions - fixes TTIN.
400
+ * Stub description files updated for init.d.
401
+
402
+ * 2 new project committers:
403
+
404
+ * Nate Berkopec (@nateberkopec)
405
+ * Richard Schneeman (@schneems)
406
+
407
+ ## 3.6.0 / 2016-07-24
408
+
409
+ * 12 bug fixes:
410
+ * Add ability to detect a shutting down server. Fixes #932
411
+ * Add support for Expect: 100-continue. Fixes #519
412
+ * Check SSLContext better. Fixes #828
413
+ * Clarify behavior of '-t num'. Fixes #984
414
+ * Don't default to VERIFY_PEER. Fixes #1028
415
+ * Don't use ENV['PWD'] on windows. Fixes #1023
416
+ * Enlarge the scope of catching app exceptions. Fixes #1027
417
+ * Execute background hooks after daemonizing. Fixes #925
418
+ * Handle HUP as a stop unless there is IO redirection. Fixes #911
419
+ * Implement chunked request handling. Fixes #620
420
+ * Just rescue exception to return a 500. Fixes #1027
421
+ * Redirect IO in the jruby daemon mode. Fixes #778
422
+
423
+ ## 3.5.2 / 2016-07-20
424
+
425
+ * 1 bug fix:
426
+ * Don't let persistent_timeout be nil
427
+
428
+ * 1 PR merged:
429
+ * Merge pull request #1021 from benzrf/patch-1
430
+
431
+ ## 3.5.1 / 2016-07-20
432
+
433
+ * 1 bug fix:
434
+ * Be sure to only listen on host:port combos once. Fixes #1022
435
+
436
+ ## 3.5.0 / 2016-07-18
437
+
438
+ * 1 minor features:
439
+ * Allow persistent_timeout to be configured via the dsl.
440
+
441
+ * 9 bug fixes:
442
+ * Allow a bare % in a query string. Fixes #958
443
+ * Explicitly listen on all localhost addresses. Fixes #782
444
+ * Fix `TCPLogger` log error in tcp cluster mode.
445
+ * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
446
+ * Fix puma/puma#968 Default verify_mode to peer
447
+ * Log any exceptions in ThreadPool. Fixes #1010
448
+ * Silence connection errors in the reactor. Fixes #959
449
+ * Tiny fixes in hook documentation for #840
450
+ * It should not log requests if we want it to be quiet
451
+
452
+ * 5 doc fixes:
453
+ * Add How to stop Puma on Heroku using plugins to the example directory
454
+ * Provide both hot and phased restart in jungle script
455
+ * Update reference to the instances management script
456
+ * Update default number of threads
457
+ * Fix typo in example config
458
+
459
+ * 14 PRs merged:
460
+ * Merge pull request #1007 from willnet/patch-1
461
+ * Merge pull request #1014 from jeznet/patch-1
462
+ * Merge pull request #1015 from bf4/patch-1
463
+ * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
464
+ * Merge pull request #954 from jf/master
465
+ * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
466
+ * Merge pull request #956 from maxkwallace/master
467
+ * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
468
+ * Merge pull request #969 from frankwong15/master
469
+ * Merge pull request #970 from willnet/delete-blank-document
470
+ * Merge pull request #974 from rocketjob/feature/name_threads
471
+ * Merge pull request #977 from snow/master
472
+ * Merge pull request #981 from zach-chai/patch-1
473
+ * Merge pull request #993 from scorix/master
474
+
475
+ ## 3.4.0 / 2016-04-07
476
+
477
+ * 2 minor features:
478
+ * Add ability to force threads to stop on shutdown. Fixes #938
479
+ * Detect and commit seppuku when fork(2) fails. Fixes #529
480
+
481
+ * 3 unknowns:
482
+ * Ignore errors trying to update the backport tables. Fixes #788
483
+ * Invoke the lowlevel_error in more places to allow for exception tracking. Fixes #894
484
+ * Update the query string when an absolute URI is used. Fixes #937
485
+
486
+ * 5 doc fixes:
487
+ * Add Process Monitors section to top-level README
488
+ * Better document the hooks. Fixes #840
489
+ * docs/system.md sample config refinements and elaborations
490
+ * Fix typos at couple of places.
491
+ * Cleanup warnings
492
+
493
+ * 3 PRs merged:
494
+ * Merge pull request #945 from dekellum/systemd-docs-refined
495
+ * Merge pull request #946 from vipulnsward/rm-pid
496
+ * Merge pull request #947 from vipulnsward/housekeeping-typos
497
+
498
+ ## 3.3.0 / 2016-04-05
499
+
500
+ * 2 minor features:
501
+ * Allow overriding options of Configuration object
502
+ * Rename to inherit_ssl_listener like inherit_tcp|unix
503
+
504
+ * 2 doc fixes:
505
+ * Add docs/systemd.md (with socket activation sub-section)
506
+ * Document UNIX signals with cluster on README.md
507
+
508
+ * 3 PRs merged:
509
+ * Merge pull request #936 from prathamesh-sonpatki/allow-overriding-config-options
510
+ * Merge pull request #940 from kyledrake/signalsdoc
511
+ * Merge pull request #942 from dekellum/socket-activate-improve
512
+
513
+ ## 3.2.0 / 2016-03-20
514
+
515
+ * 1 deprecation removal:
516
+ * Delete capistrano.rb
517
+
518
+ * 3 bug fixes:
519
+ * Detect gems.rb as well as Gemfile
520
+ * Simplify and fix logic for directory to use when restarting for all phases
521
+ * Speed up phased-restart start
522
+
523
+ * 2 PRs merged:
524
+ * Merge pull request #927 from jlecour/gemfile_variants
525
+ * Merge pull request #931 from joneslee85/patch-10
526
+
527
+ ## 3.1.1 / 2016-03-17
528
+
529
+ * 4 bug fixes:
530
+ * Disable USR1 usage on JRuby
531
+ * Fixes #922 - Correctly define file encoding as UTF-8
532
+ * Set a more explicit SERVER_SOFTWARE Rack variable
533
+ * Show RUBY_ENGINE_VERSION if available. Fixes #923
534
+
535
+ * 3 PRs merged:
536
+ * Merge pull request #912 from tricknotes/fix-allow-failures-in-travis-yml
537
+ * Merge pull request #921 from swrobel/patch-1
538
+ * Merge pull request #924 from tbrisker/patch-1
539
+
540
+ ## 3.1.0 / 2016-03-05
541
+
542
+ * 1 minor feature:
543
+ * Add 'import' directive to config file. Fixes #916
544
+
545
+ * 5 bug fixes:
546
+ * Add 'fetch' to options. Fixes #913
547
+ * Fix jruby daemonization. Fixes #918
548
+ * Recreate the proper args manually. Fixes #910
549
+ * Require 'time' to get iso8601. Fixes #914
550
+
551
+ ## 3.0.2 / 2016-02-26
552
+
553
+ * 5 bug fixes:
554
+
555
+ * Fix 'undefined local variable or method `pid` for #<Puma::ControlCLI:0x007f185fcef968>' when execute pumactl with `--pid` option.
556
+ * Fix 'undefined method `windows?` for Puma:Module' when execute pumactl.
557
+ * Harden tmp_restart against errors related to the restart file
558
+ * Make `plugin :tmp_restart` behavior correct in Windows.
559
+ * fix uninitialized constant Puma::ControlCLI::StateFile
560
+
561
+ * 3 PRs merged:
562
+
563
+ * Merge pull request #901 from mitto/fix-pumactl-uninitialized-constant-statefile
564
+ * Merge pull request #902 from corrupt952/fix_undefined_method_and_variable_when_execute_pumactl
565
+ * Merge pull request #905 from Eric-Guo/master
566
+
567
+ ## 3.0.1 / 2016-02-25
568
+
569
+ * 1 bug fix:
570
+
571
+ * Removed the experimental support for async.callback as it broke
572
+ websockets entirely. Seems no server has both hijack and async.callback
573
+ and thus faye is totally confused what to do and doesn't work.
574
+
575
+ ## 3.0.0 / 2016-02-25
576
+
577
+ * 2 major changes:
578
+
579
+ * Ruby pre-2.0 is no longer supported. We'll do our best to not add
580
+ features that break those rubies but will no longer be testing
581
+ with them.
582
+ * Don't log requests by default. Fixes #852
583
+
584
+ * 2 major features:
585
+
586
+ * Plugin support! Plugins can interact with configuration as well
587
+ as provide augment server functionality!
588
+ * Experimental env['async.callback'] support
589
+
590
+ * 4 minor features:
591
+
592
+ * Listen to unix socket with provided backlog if any
593
+ * Improves the clustered stats to report worker stats
594
+ * Pass the env to the lowlevel_error handler. Fixes #854
595
+ * Treat path-like hosts as unix sockets. Fixes #824
596
+
597
+ * 5 bug fixes:
598
+
599
+ * Clean thread locals when using keepalive. Fixes #823
600
+ * Cleanup compiler warnings. Fixes #815
601
+ * Expose closed? for use by the reactor. Fixes #835
602
+ * Move signal handlers to separate method to prevent space leak. Fixes #798
603
+ * Signal not full on worker exit #876
604
+
605
+ * 5 doc fixes:
606
+
607
+ * Update README.md with various grammar fixes
608
+ * Use newest version of Minitest
609
+ * Add directory configuration docs, fix typo [ci skip]
610
+ * Remove old COPYING notice. Fixes #849
611
+
612
+ * 10 merged PRs:
613
+
614
+ * Merge pull request #871 from deepj/travis
615
+ * Merge pull request #874 from wallclockbuilder/master
616
+ * Merge pull request #883 from dadah89/igor/trim_only_worker
617
+ * Merge pull request #884 from uistudio/async-callback
618
+ * Merge pull request #888 from mlarraz/tick_minitest
619
+ * Merge pull request #890 from todd/directory_docs
620
+ * Merge pull request #891 from ctaintor/improve_clustered_status
621
+ * Merge pull request #893 from spastorino/add_missing_require
622
+ * Merge pull request #897 from zendesk/master
623
+ * Merge pull request #899 from kch/kch-readme-fixes
624
+
625
+ ## 2.16.0 / 2016-01-27
2
626
 
3
627
  * 7 minor features:
4
628
 
@@ -38,13 +662,13 @@
38
662
  * Merge pull request #860 from zendesk/expose_old_worker_count
39
663
  * Merge pull request #861 from zendesk/allow_control_url_umask
40
664
 
41
- === 2.15.3 / 2015-11-07
665
+ ## 2.15.3 / 2015-11-07
42
666
 
43
667
  * 1 bug fix:
44
668
 
45
669
  * Fix JRuby parser
46
670
 
47
- === 2.15.2 / 2015-11-06
671
+ ## 2.15.2 / 2015-11-06
48
672
 
49
673
  * 2 bug fixes:
50
674
  * ext/puma_http11: handle duplicate headers as per RFC
@@ -54,13 +678,13 @@
54
678
  * Merge pull request #818 from unleashed/support-duplicate-headers
55
679
  * Merge pull request #819 from VictorLowther/fix-ca-and-verify_null-exception
56
680
 
57
- === 2.15.1 / 2015-11-06
681
+ ## 2.15.1 / 2015-11-06
58
682
 
59
683
  * 1 bug fix:
60
684
 
61
685
  * Allow older openssl versions
62
686
 
63
- === 2.15.0 / 2015-11-06
687
+ ## 2.15.0 / 2015-11-06
64
688
 
65
689
  * 6 minor features:
66
690
  * Allow setting ca without setting a verify mode
@@ -109,7 +733,7 @@
109
733
  * Merge pull request #814 from schneems/schneems/worker_timeout-docs
110
734
  * Merge pull request #817 from unleashed/worker-boot-timeout
111
735
 
112
- === 2.14.0 / 2015-09-18
736
+ ## 2.14.0 / 2015-09-18
113
737
 
114
738
  * 1 minor feature:
115
739
  * Make building with SSL support optional
@@ -117,33 +741,33 @@
117
741
  * 1 bug fix:
118
742
  * Use Rack::Builder if available. Fixes #735
119
743
 
120
- === 2.13.4 / 2015-08-16
744
+ ## 2.13.4 / 2015-08-16
121
745
 
122
746
  * 1 bug fix:
123
747
  * Use the environment possible set by the config early and from
124
748
  the config file later (if set).
125
749
 
126
- === 2.13.3 / 2015-08-15
750
+ ## 2.13.3 / 2015-08-15
127
751
 
128
752
  Seriously, I need to revamp config with tests.
129
753
 
130
754
  * 1 bug fix:
131
755
  * Fix preserving options before cleaning for state. Fixes #769
132
756
 
133
- === 2.13.2 / 2015-08-15
757
+ ## 2.13.2 / 2015-08-15
134
758
 
135
759
  The "clearly I don't have enough tests for the config" release.
136
760
 
137
761
  * 1 bug fix:
138
762
  * Fix another place binds wasn't initialized. Fixes #767
139
763
 
140
- === 2.13.1 / 2015-08-15
764
+ ## 2.13.1 / 2015-08-15
141
765
 
142
766
  * 2 bug fixes:
143
767
  * Fix binds being masked in config files. Fixes #765
144
768
  * Use options from the config file properly in pumactl. Fixes #764
145
769
 
146
- === 2.13.0 / 2015-08-14
770
+ ## 2.13.0 / 2015-08-14
147
771
 
148
772
  * 1 minor feature:
149
773
  * Add before_fork hooks option.
@@ -162,7 +786,7 @@ The "clearly I don't have enough tests for the config" release.
162
786
  * Merge pull request #759 from BenV/fix-centos6-build
163
787
  * Merge pull request #761 from looker/no-log
164
788
 
165
- === 2.12.3 / 2015-08-03
789
+ ## 2.12.3 / 2015-08-03
166
790
 
167
791
  * 8 minor bugs fixed:
168
792
  * Fix Capistrano 'uninitialized constant Puma' error.
@@ -183,13 +807,13 @@ The "clearly I don't have enough tests for the config" release.
183
807
  * 1 test fix:
184
808
  * Add 1.8.7, rbx-1 (allow failures) to Travis.
185
809
 
186
- === 2.12.2 / 2015-07-17
810
+ ## 2.12.2 / 2015-07-17
187
811
 
188
812
  * 2 bug fix:
189
813
  * Pull over and use Rack::URLMap. Fixes #741
190
814
  * Stub out peercert on JRuby for now. Fixes #739
191
815
 
192
- === 2.12.1 / 2015-07-16
816
+ ## 2.12.1 / 2015-07-16
193
817
 
194
818
  * 2 bug fixes:
195
819
  * Use a constant format. Fixes #737
@@ -201,7 +825,7 @@ The "clearly I don't have enough tests for the config" release.
201
825
  * 1 PR merged:
202
826
  * Merge pull request #736 from paulanunda/paulanunda/typo-fix
203
827
 
204
- === 2.12.0 / 2015-07-14
828
+ ## 2.12.0 / 2015-07-14
205
829
 
206
830
  * 13 bug fixes:
207
831
  * Add thread reaping to thread pool
@@ -250,7 +874,7 @@ The "clearly I don't have enough tests for the config" release.
250
874
  * Merge pull request #729 from allaire/patch-1
251
875
  * Merge pull request #730 from iamjarvo/container-infrastructure
252
876
 
253
- === 2.11.3 / 2015-05-18
877
+ ## 2.11.3 / 2015-05-18
254
878
 
255
879
  * 5 bug fixes:
256
880
  * Be sure to unlink tempfiles after a request. Fixes #690
@@ -261,7 +885,7 @@ The "clearly I don't have enough tests for the config" release.
261
885
  * 1 PR merged:
262
886
  * Merge pull request #698 from looker/hang-handshake
263
887
 
264
- === 2.11.2 / 2015-04-11
888
+ ## 2.11.2 / 2015-04-11
265
889
 
266
890
  * 2 minor features:
267
891
  * Add `on_worker_fork` hook, which allows to mimic Unicorn's behavior
@@ -284,7 +908,7 @@ The "clearly I don't have enough tests for the config" release.
284
908
  * Merge pull request #667 from JuanitoFatas/doc/gemspec
285
909
  * Merge pull request #672 from chulkilee/refactor
286
910
 
287
- === 2.11.1 / 2015-02-11
911
+ ## 2.11.1 / 2015-02-11
288
912
 
289
913
  * 2 bug fixes:
290
914
  * Avoid crash in strange restart conditions
@@ -294,7 +918,7 @@ The "clearly I don't have enough tests for the config" release.
294
918
  * Merge pull request #644 from bpaquet/master
295
919
  * Merge pull request #646 from mkonecny/master
296
920
 
297
- === 2.11.0 / 2015-01-20
921
+ ## 2.11.0 / 2015-01-20
298
922
 
299
923
  * 9 bug fixes:
300
924
  * Add mode as an additional bind option to unix sockets. Fixes #630
@@ -327,7 +951,7 @@ The "clearly I don't have enough tests for the config" release.
327
951
  * Merge pull request #639 from ebeigarts/fix-phased-restarts
328
952
  * Merge pull request #640 from codehotter/issue-612-dependent-requests-deadlock
329
953
 
330
- === 2.10.2 / 2014-11-26
954
+ ## 2.10.2 / 2014-11-26
331
955
 
332
956
  * 1 bug fix:
333
957
  * Conditionalize thread local cleaning, fixes perf degradation fix
@@ -335,7 +959,7 @@ The "clearly I don't have enough tests for the config" release.
335
959
  overhead to a each request, so it has to be turned on explicitly
336
960
  if a user needs it.
337
961
 
338
- === 2.10.1 / 2014-11-24
962
+ ## 2.10.1 / 2014-11-24
339
963
 
340
964
  * 1 bug fix:
341
965
  * Load the app after daemonizing because the app might start threads.
@@ -346,7 +970,7 @@ The "clearly I don't have enough tests for the config" release.
346
970
  If you're app has problems starting up, start it without daemon mode initially
347
971
  to test.
348
972
 
349
- === 2.10.0 / 2014-11-23
973
+ ## 2.10.0 / 2014-11-23
350
974
 
351
975
  * 3 minor features:
352
976
  * Added on_worker_shutdown hook mechanism
@@ -375,7 +999,7 @@ The "clearly I don't have enough tests for the config" release.
375
999
  * Merge pull request #608 from Gu1/master
376
1000
  * Merge remote-tracking branch 'origin/pr/538'
377
1001
 
378
- === 2.9.2 / 2014-10-25
1002
+ ## 2.9.2 / 2014-10-25
379
1003
 
380
1004
  * 8 bug fixes:
381
1005
  * Fix puma-wild handling a restart properly. Fixes #550
@@ -395,7 +1019,7 @@ The "clearly I don't have enough tests for the config" release.
395
1019
  * Merge pull request #581 from alexch/slightly-better-logging
396
1020
  * Merge pull request #590 from looker/jruby_disable_sslv3
397
1021
 
398
- === 2.9.1 / 2014-09-05
1022
+ ## 2.9.1 / 2014-09-05
399
1023
 
400
1024
  * 4 bug fixes:
401
1025
  * Cleanup the SSL related structures properly, fixes memory leak
@@ -407,7 +1031,7 @@ The "clearly I don't have enough tests for the config" release.
407
1031
  * Merge pull request #561 from theoldreader/sighup
408
1032
  * Merge pull request #570 from havenwood/spawn-thread-edge-case
409
1033
 
410
- === 2.9.0 / 2014-07-12
1034
+ ## 2.9.0 / 2014-07-12
411
1035
 
412
1036
  * 1 minor feature:
413
1037
  * Add SSL support for JRuby
@@ -431,7 +1055,7 @@ The "clearly I don't have enough tests for the config" release.
431
1055
  * Merge pull request #544 from chulkilee/bsd-3-clause
432
1056
  * Merge pull request #551 from jcxplorer/patch-1
433
1057
 
434
- === 2.8.2 / 2014-04-12
1058
+ ## 2.8.2 / 2014-04-12
435
1059
 
436
1060
  * 4 bug fixes:
437
1061
  * During upgrade, change directory in main process instead of workers.
@@ -458,7 +1082,7 @@ The "clearly I don't have enough tests for the config" release.
458
1082
  * Merge pull request #517 from misfo/patch-1
459
1083
  * Merge pull request #518 from LongMan/master
460
1084
 
461
- === 2.8.1 / 2014-03-06
1085
+ ## 2.8.1 / 2014-03-06
462
1086
 
463
1087
  * 1 bug fixes:
464
1088
  * Run puma-wild with proper deps for prune_bundler
@@ -474,7 +1098,7 @@ The "clearly I don't have enough tests for the config" release.
474
1098
  * Merge pull request #490 from tobinibot/patch-1
475
1099
  * Merge pull request #491 from brianknight10/clarify-no-config
476
1100
 
477
- === 2.8.0 / 2014-02-28
1101
+ ## 2.8.0 / 2014-02-28
478
1102
 
479
1103
  * 8 minor features:
480
1104
  * Add ability to autoload a config file. Fixes #438
@@ -517,13 +1141,13 @@ The "clearly I don't have enough tests for the config" release.
517
1141
  * Merge pull request #482 from prathamesh-sonpatki/signals-doc-cleanup
518
1142
  * Merge pull request #483 from YotpoLtd/master
519
1143
 
520
- === 2.7.1 / 2013-12-05
1144
+ ## 2.7.1 / 2013-12-05
521
1145
 
522
1146
  * 1 bug fix:
523
1147
 
524
1148
  * Keep STDOUT/STDERR the right mode. Fixes #422
525
1149
 
526
- === 2.7.0 / 2013-12-03
1150
+ ## 2.7.0 / 2013-12-03
527
1151
 
528
1152
  * 1 minor feature:
529
1153
  * Adding TTIN and TTOU to increment/decrement workers
@@ -540,7 +1164,7 @@ The "clearly I don't have enough tests for the config" release.
540
1164
  * Increase the max URI path length to 2048 chars from 1024 chars
541
1165
  * Upstart jungle use config/puma.rb instead
542
1166
 
543
- === 2.6.0 / 2013-09-13
1167
+ ## 2.6.0 / 2013-09-13
544
1168
 
545
1169
  * 2 minor features:
546
1170
  * Add support for event hooks
@@ -553,14 +1177,14 @@ The "clearly I don't have enough tests for the config" release.
553
1177
  * Handle BrokenPipe, StandardError and IOError in fat_wrote and break out
554
1178
  * Return success status to the invoking environment
555
1179
 
556
- === 2.5.1 / 2013-08-13
1180
+ ## 2.5.1 / 2013-08-13
557
1181
 
558
1182
  * 2 bug fixes:
559
1183
 
560
1184
  * Keep jruby daemon mode from retrying on a hot restart
561
1185
  * Extract version from const.rb in gemspec
562
1186
 
563
- === 2.5.0 / 2013-08-08
1187
+ ## 2.5.0 / 2013-08-08
564
1188
 
565
1189
  * 2 minor features:
566
1190
  * Allow configuring pumactl with config.rb
@@ -582,12 +1206,12 @@ The "clearly I don't have enough tests for the config" release.
582
1206
  * Remove obsolete pumactl instructions; refer to pumactl for details
583
1207
  * Make Bundler used puma.gemspec version agnostic
584
1208
 
585
- === 2.4.1 / 2013-08-07
1209
+ ## 2.4.1 / 2013-08-07
586
1210
 
587
1211
  * 1 experimental feature:
588
1212
  * Support raw tcp servers (aka Lopez Express mode)
589
1213
 
590
- === 2.4.0 / 2013-07-22
1214
+ ## 2.4.0 / 2013-07-22
591
1215
 
592
1216
  * 5 minor features:
593
1217
  * Add PUMA_JRUBY_DAEMON_OPTS to get around agent starting twice
@@ -610,13 +1234,13 @@ The "clearly I don't have enough tests for the config" release.
610
1234
  * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes #309
611
1235
 
612
1236
 
613
- === 2.3.2 / 2013-07-08
1237
+ ## 2.3.2 / 2013-07-08
614
1238
 
615
1239
  * 1 bug fix:
616
1240
 
617
1241
  * Move starting control server to after daemonization.
618
1242
 
619
- === 2.3.1 / 2013-07-06
1243
+ ## 2.3.1 / 2013-07-06
620
1244
 
621
1245
  * 2 bug fixes:
622
1246
 
@@ -626,7 +1250,7 @@ The "clearly I don't have enough tests for the config" release.
626
1250
  * 1 doc change:
627
1251
  * Better document some platform constraints
628
1252
 
629
- === 2.3.0 / 2013-07-05
1253
+ ## 2.3.0 / 2013-07-05
630
1254
 
631
1255
  * 1 major bug fix:
632
1256
 
@@ -645,13 +1269,13 @@ The "clearly I don't have enough tests for the config" release.
645
1269
  * Refactored modes into seperate classes that CLI uses
646
1270
  * Changed CLI to take an Events object instead of stdout/stderr (API change)
647
1271
 
648
- === 2.2.2 / 2013-07-02
1272
+ ## 2.2.2 / 2013-07-02
649
1273
 
650
1274
  * 1 bug fix:
651
1275
 
652
1276
  * Fix restart_command in the config
653
1277
 
654
- === 2.2.1 / 2013-07-02
1278
+ ## 2.2.1 / 2013-07-02
655
1279
 
656
1280
  * 1 minor feature:
657
1281
 
@@ -661,7 +1285,7 @@ The "clearly I don't have enough tests for the config" release.
661
1285
 
662
1286
  * Pass custom restart command in JRuby
663
1287
 
664
- === 2.2.0 / 2013-07-01
1288
+ ## 2.2.0 / 2013-07-01
665
1289
 
666
1290
  * 1 major feature:
667
1291
 
@@ -672,14 +1296,14 @@ The "clearly I don't have enough tests for the config" release.
672
1296
  * Don't leak info when not in development. Fixes #256
673
1297
  * Load the app, then bind the ports
674
1298
 
675
- === 2.1.1 / 2013-06-20
1299
+ ## 2.1.1 / 2013-06-20
676
1300
 
677
1301
  * 2 minor bug fixes:
678
1302
 
679
1303
  * Fix daemonization on jruby
680
1304
  * Load the application before daemonizing. Fixes #285
681
1305
 
682
- === 2.1.0 / 2013-06-18
1306
+ ## 2.1.0 / 2013-06-18
683
1307
 
684
1308
  * 3 minor features:
685
1309
  * Allow listening socket to be configured via Capistrano variable
@@ -708,13 +1332,13 @@ The "clearly I don't have enough tests for the config" release.
708
1332
  * Add some documentation for Clustered mode
709
1333
  * Added quotes to /etc/puma.conf
710
1334
 
711
- === 2.0.1 / 2013-04-30
1335
+ ## 2.0.1 / 2013-04-30
712
1336
 
713
1337
  * 1 bug fix:
714
1338
 
715
1339
  * Fix not starting on JRuby properly
716
1340
 
717
- === 2.0.0 / 2013-04-29
1341
+ ## 2.0.0 / 2013-04-29
718
1342
 
719
1343
  RailsConf 2013 edition!
720
1344
 
@@ -731,7 +1355,7 @@ RailsConf 2013 edition!
731
1355
  * Fix stdout/stderr logs to sync outputs
732
1356
  * allow binding to IPv6 addresses
733
1357
 
734
- === 2.0.0.b7 / 2013-03-18
1358
+ ## 2.0.0.b7 / 2013-03-18
735
1359
 
736
1360
  * 5 minor enhancements:
737
1361
 
@@ -756,7 +1380,7 @@ RailsConf 2013 edition!
756
1380
  * Write out the state post-daemonize. Fixes #189
757
1381
  * Prevent crash when all workers are gone
758
1382
 
759
- === 2.0.0.b6 / 2013-02-06
1383
+ ## 2.0.0.b6 / 2013-02-06
760
1384
 
761
1385
  * 2 minor enhancements:
762
1386
 
@@ -767,7 +1391,7 @@ RailsConf 2013 edition!
767
1391
 
768
1392
  * Change directory in working during upgrade. Fixes #185
769
1393
 
770
- === 2.0.0.b5 / 2013-02-05
1394
+ ## 2.0.0.b5 / 2013-02-05
771
1395
 
772
1396
  * 2 major features:
773
1397
  * Add phased worker upgrade
@@ -784,7 +1408,7 @@ RailsConf 2013 edition!
784
1408
  * Move write_pid to after we daemonize. Fixes #180
785
1409
  * Redirect IO properly and emit message for checkpointing
786
1410
 
787
- === 2.0.0.b4 / 2012-12-12
1411
+ ## 2.0.0.b4 / 2012-12-12
788
1412
 
789
1413
  * 4 bug fixes:
790
1414
  * Properly check #syswrite's value for variable sized buffers. Fixes #170
@@ -792,12 +1416,12 @@ RailsConf 2013 edition!
792
1416
  * Handle char vs byte and mixing syswrite with write properly
793
1417
  * made MiniSSL validate key/cert file existence
794
1418
 
795
- === 2.0.0.b3 / 2012-11-22
1419
+ ## 2.0.0.b3 / 2012-11-22
796
1420
 
797
1421
  * 1 bug fix:
798
1422
  * Package right files in gem
799
1423
 
800
- === 2.0.0.b2 / 2012-11-18
1424
+ ## 2.0.0.b2 / 2012-11-18
801
1425
  * 5 minor feature:
802
1426
  * Now Puma is bundled with an capistrano recipe. Just require
803
1427
  'puma/capistrano' in you deploy.rb
@@ -815,7 +1439,7 @@ RailsConf 2013 edition!
815
1439
  * Be sure to empty the drain the todo before shutting down. Fixes #155
816
1440
  * allow for alternate locations for status app
817
1441
 
818
- === 2.0.0.b1 / 2012-09-11
1442
+ ## 2.0.0.b1 / 2012-09-11
819
1443
 
820
1444
  * 1 major feature:
821
1445
  * Optional worker process mode (-w) to allow for process scaling in
@@ -828,32 +1452,32 @@ RailsConf 2013 edition!
828
1452
  NOTE: SSL support in JRuby is not supported at present. Support will
829
1453
  be added back in a future date when a java Puma::MiniSSL is added.
830
1454
 
831
- === 1.6.3 / 2012-09-04
1455
+ ## 1.6.3 / 2012-09-04
832
1456
 
833
1457
  * 1 bug fix:
834
1458
  * Close sockets waiting in the reactor when a hot restart is performed
835
1459
  so that browsers reconnect on the next request
836
1460
 
837
- === 1.6.2 / 2012-08-27
1461
+ ## 1.6.2 / 2012-08-27
838
1462
 
839
1463
  * 1 bug fix:
840
1464
  * Rescue StandardError instead of IOError to handle SystemCallErrors
841
1465
  as well as other application exceptions inside the reactor.
842
1466
 
843
- === 1.6.1 / 2012-07-23
1467
+ ## 1.6.1 / 2012-07-23
844
1468
 
845
1469
  * 1 packaging bug fixed:
846
1470
  * Include missing files
847
1471
 
848
- === 1.6.0 / 2012-07-23
1472
+ ## 1.6.0 / 2012-07-23
849
1473
 
850
1474
  * 1 major bug fix:
851
1475
  * Prevent slow clients from starving the server by introducing a
852
1476
  dedicated IO reactor thread. Credit for reporting goes to @meh.
853
1477
 
854
- === 1.5.0 / 2012-07-19
1478
+ ## 1.5.0 / 2012-07-19
855
1479
 
856
- * 7 contributers to this release:
1480
+ * 7 contributors to this release:
857
1481
  * Christian Mayer
858
1482
  * Darío Javier Cravero
859
1483
  * Dirkjan Bussink
@@ -875,7 +1499,7 @@ be added back in a future date when a java Puma::MiniSSL is added.
875
1499
  * Allow Server#run to run sync. Fixes #111
876
1500
  * Puma can now run on windows
877
1501
 
878
- === 1.4.0 / 2012-06-04
1502
+ ## 1.4.0 / 2012-06-04
879
1503
 
880
1504
  * 1 bug fix:
881
1505
  * SCRIPT_NAME should be passed from env to allow mounting apps
@@ -883,13 +1507,13 @@ be added back in a future date when a java Puma::MiniSSL is added.
883
1507
  * 1 experimental feature:
884
1508
  * Add puma.socket key for direct socket access
885
1509
 
886
- === 1.3.1 / 2012-05-15
1510
+ ## 1.3.1 / 2012-05-15
887
1511
 
888
1512
  * 2 bug fixes:
889
1513
  * use #bytesize instead of #length for Content-Length header
890
1514
  * Use StringIO properly. Fixes #98
891
1515
 
892
- === 1.3.0 / 2012-05-08
1516
+ ## 1.3.0 / 2012-05-08
893
1517
 
894
1518
  * 2 minor features:
895
1519
  * Return valid Rack responses (passes Lint) from status server
@@ -901,10 +1525,10 @@ be added back in a future date when a java Puma::MiniSSL is added.
901
1525
  * Only stop the status server if it's started. Fixes #84
902
1526
  * Set RACK_ENV early in cli also. Fixes #78
903
1527
 
904
- * 1 new contributer:
1528
+ * 1 new contributor:
905
1529
  * Jesse Cooke
906
1530
 
907
- === 1.2.2 / 2012-04-28
1531
+ ## 1.2.2 / 2012-04-28
908
1532
 
909
1533
  * 4 bug fixes:
910
1534
 
@@ -913,13 +1537,13 @@ be added back in a future date when a java Puma::MiniSSL is added.
913
1537
  * Keep the encoding of the body correct. Fixes #79
914
1538
  * show error.to_s along with backtrace for low-level error
915
1539
 
916
- === 1.2.1 / 2012-04-11
1540
+ ## 1.2.1 / 2012-04-11
917
1541
 
918
1542
  1 bug fix:
919
1543
 
920
1544
  * Fix rack.url_scheme for SSL servers. Fixes #65
921
1545
 
922
- === 1.2.0 / 2012-04-11
1546
+ ## 1.2.0 / 2012-04-11
923
1547
 
924
1548
  1 major feature:
925
1549
 
@@ -937,20 +1561,20 @@ be added back in a future date when a java Puma::MiniSSL is added.
937
1561
  * Fix reporting https only on a true SSL connection
938
1562
  * Set the default content type to 'text/plain'. Fixes #63
939
1563
  * Use REUSEADDR. Fixes #60
940
- * Shutdown gracefull on SIGTERM. Fixes #53
1564
+ * Shutdown gracefully on SIGTERM. Fixes #53
941
1565
 
942
- 2 new contributers:
1566
+ 2 new contributors:
943
1567
 
944
1568
  * Seamus Abshere
945
1569
  * Steve Richert
946
1570
 
947
- === 1.1.1 / 2012-03-30
1571
+ ## 1.1.1 / 2012-03-30
948
1572
 
949
1573
  1 bugfix:
950
1574
 
951
1575
  * Include puma/compat.rb in the gem (oops!)
952
1576
 
953
- === 1.1.0 / 2012-03-30
1577
+ ## 1.1.0 / 2012-03-30
954
1578
 
955
1579
  1 bugfix:
956
1580
 
@@ -960,6 +1584,15 @@ be added back in a future date when a java Puma::MiniSSL is added.
960
1584
 
961
1585
  * Add umask param to the unix:// bind to set the umask
962
1586
 
963
- === 1.0.0 / 2012-03-29
1587
+ ## 1.0.0 / 2012-03-29
964
1588
 
965
1589
  * Released!
1590
+
1591
+ ## Ignore - this is for maintainers to copy-paste during release
1592
+ ## Master
1593
+
1594
+ * Features
1595
+ * Your feature goes here (#Github Number)
1596
+
1597
+ * Bugfixes
1598
+ * Your bugfix goes here (#Github Number)