piesync-puma 3.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +7 -0
  2. data/History.md +1429 -0
  3. data/LICENSE +26 -0
  4. data/README.md +280 -0
  5. data/bin/puma +10 -0
  6. data/bin/puma-wild +31 -0
  7. data/bin/pumactl +12 -0
  8. data/docs/architecture.md +36 -0
  9. data/docs/deployment.md +91 -0
  10. data/docs/images/puma-connection-flow-no-reactor.png +0 -0
  11. data/docs/images/puma-connection-flow.png +0 -0
  12. data/docs/images/puma-general-arch.png +0 -0
  13. data/docs/nginx.md +80 -0
  14. data/docs/plugins.md +28 -0
  15. data/docs/restart.md +39 -0
  16. data/docs/signals.md +96 -0
  17. data/docs/systemd.md +272 -0
  18. data/ext/puma_http11/PumaHttp11Service.java +17 -0
  19. data/ext/puma_http11/ext_help.h +15 -0
  20. data/ext/puma_http11/extconf.rb +15 -0
  21. data/ext/puma_http11/http11_parser.c +1071 -0
  22. data/ext/puma_http11/http11_parser.h +65 -0
  23. data/ext/puma_http11/http11_parser.java.rl +161 -0
  24. data/ext/puma_http11/http11_parser.rl +149 -0
  25. data/ext/puma_http11/http11_parser_common.rl +54 -0
  26. data/ext/puma_http11/io_buffer.c +155 -0
  27. data/ext/puma_http11/mini_ssl.c +494 -0
  28. data/ext/puma_http11/org/jruby/puma/Http11.java +234 -0
  29. data/ext/puma_http11/org/jruby/puma/Http11Parser.java +470 -0
  30. data/ext/puma_http11/org/jruby/puma/MiniSSL.java +352 -0
  31. data/ext/puma_http11/puma_http11.c +500 -0
  32. data/lib/puma.rb +23 -0
  33. data/lib/puma/accept_nonblock.rb +23 -0
  34. data/lib/puma/app/status.rb +74 -0
  35. data/lib/puma/binder.rb +413 -0
  36. data/lib/puma/cli.rb +235 -0
  37. data/lib/puma/client.rb +480 -0
  38. data/lib/puma/cluster.rb +531 -0
  39. data/lib/puma/commonlogger.rb +108 -0
  40. data/lib/puma/compat.rb +14 -0
  41. data/lib/puma/configuration.rb +361 -0
  42. data/lib/puma/const.rb +239 -0
  43. data/lib/puma/control_cli.rb +264 -0
  44. data/lib/puma/convenient.rb +25 -0
  45. data/lib/puma/daemon_ext.rb +33 -0
  46. data/lib/puma/delegation.rb +13 -0
  47. data/lib/puma/detect.rb +15 -0
  48. data/lib/puma/dsl.rb +518 -0
  49. data/lib/puma/events.rb +153 -0
  50. data/lib/puma/io_buffer.rb +9 -0
  51. data/lib/puma/java_io_buffer.rb +47 -0
  52. data/lib/puma/jruby_restart.rb +84 -0
  53. data/lib/puma/launcher.rb +433 -0
  54. data/lib/puma/minissl.rb +285 -0
  55. data/lib/puma/null_io.rb +44 -0
  56. data/lib/puma/plugin.rb +117 -0
  57. data/lib/puma/plugin/tmp_restart.rb +34 -0
  58. data/lib/puma/rack/backports/uri/common_193.rb +33 -0
  59. data/lib/puma/rack/builder.rb +299 -0
  60. data/lib/puma/rack/urlmap.rb +91 -0
  61. data/lib/puma/rack_default.rb +7 -0
  62. data/lib/puma/reactor.rb +347 -0
  63. data/lib/puma/runner.rb +184 -0
  64. data/lib/puma/server.rb +1072 -0
  65. data/lib/puma/single.rb +123 -0
  66. data/lib/puma/state_file.rb +31 -0
  67. data/lib/puma/tcp_logger.rb +41 -0
  68. data/lib/puma/thread_pool.rb +346 -0
  69. data/lib/puma/util.rb +129 -0
  70. data/lib/rack/handler/puma.rb +115 -0
  71. data/tools/jungle/README.md +19 -0
  72. data/tools/jungle/init.d/README.md +61 -0
  73. data/tools/jungle/init.d/puma +421 -0
  74. data/tools/jungle/init.d/run-puma +18 -0
  75. data/tools/jungle/rc.d/README.md +74 -0
  76. data/tools/jungle/rc.d/puma +61 -0
  77. data/tools/jungle/rc.d/puma.conf +10 -0
  78. data/tools/jungle/upstart/README.md +61 -0
  79. data/tools/jungle/upstart/puma-manager.conf +31 -0
  80. data/tools/jungle/upstart/puma.conf +69 -0
  81. data/tools/trickletest.rb +45 -0
  82. metadata +131 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 32ea4021b4f973ad65aeff1fe1f964ea278cae573322f7161a5daf4c4971925b
4
+ data.tar.gz: 9ef8a09b32dc4ad5f83cf9fad51c0b1b2d419fe56a13a823f7454f529f09b808
5
+ SHA512:
6
+ metadata.gz: 799ca4d34a7a6341de0e657c38557d1c70b04c35a96ccadcf73b2d4cbd6156d245ef6f2f8f96c1e2381bada2c7e5590ed492fdca05a5c4dd1234a9068ade62cd
7
+ data.tar.gz: 3413cf8c33a347632833d2b3aa12a5fac4ea280fcd0fcaca8f317a06bbd9066035209b59a4a8323eb398c35ab74071591a163545ca45cef48f1ba77796cd5745
@@ -0,0 +1,1429 @@
1
+ ## Master
2
+
3
+ * x features
4
+
5
+ * x bugfixes
6
+
7
+
8
+ ## 4.3.3 and 3.12.4 / 2020-02-28
9
+ * Bugfixes
10
+ * Fix: Fixes a problem where we weren't splitting headers correctly on newlines (#2132)
11
+ * Security
12
+ * Fix: Prevent HTTP Response splitting via CR in early hints.
13
+
14
+ ## 4.3.2 and 3.12.3 / 2020-02-27
15
+
16
+ * Security
17
+ * Fix: Prevent HTTP Response splitting via CR/LF in header values. CVE-2020-5247.
18
+
19
+ ## 4.3.1 and 3.12.2 / 2019-12-05
20
+
21
+ * Security
22
+ * Fix: a poorly-behaved client could use keepalive requests to monopolize Puma's reactor and create a denial of service attack. CVE-2019-16770.
23
+
24
+ ## 3.12.1 / 2019-03-19
25
+
26
+ * 1 features
27
+ * Internal strings are frozen (#1649)
28
+ * 3 bugfixes
29
+ * Fix chunked ending check (#1607)
30
+ * Rack handler should use provided default host (#1700)
31
+ * Better support for detecting runtimes that support `fork` (#1630)
32
+
33
+ ## 3.12.0 / 2018-07-13
34
+
35
+ * 5 features:
36
+ * You can now specify which SSL ciphers the server should support, default is unchanged (#1478)
37
+ * The setting for Puma's `max_threads` is now in `Puma.stats` (#1604)
38
+ * Pool capacity is now in `Puma.stats` (#1579)
39
+ * Installs restricted to Ruby 2.2+ (#1506)
40
+ * `--control` is now deprecated in favor of `--control-url` (#1487)
41
+
42
+ * 2 bugfixes:
43
+ * 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)
44
+ * In a test env puma now emits the stack on an exception (#1557)
45
+
46
+ ## 3.11.4 / 2018-04-12
47
+
48
+ * 2 features:
49
+ * Manage puma as a service using rc.d (#1529)
50
+ * Server stats are now available from a top level method (#1532)
51
+ * 5 bugfixes:
52
+ * Fix parsing CLI options (#1482)
53
+ * Order of stderr and stdout is made before redirecting to a log file (#1511)
54
+ * Init.d fix of `ps -p` to check if pid exists (#1545)
55
+ * Early hints bugfix (#1550)
56
+ * Purge interrupt queue when closing socket fails (#1553)
57
+
58
+ ## 3.11.3 / 2018-03-05
59
+
60
+ * 3 bugfixes:
61
+ * Add closed? to MiniSSL::Socket for use in reactor (#1510)
62
+ * Handle EOFError at the toplevel of the server threads (#1524) (#1507)
63
+ * Deal with zero sized bodies when using SSL (#1483)
64
+
65
+ ## 3.11.2 / 2018-01-19
66
+
67
+ * 1 bugfix:
68
+ * Deal with read\_nonblock returning nil early
69
+
70
+ ## 3.11.1 / 2018-01-18
71
+
72
+ * 1 bugfix:
73
+ * Handle read\_nonblock returning nil when the socket close (#1502)
74
+
75
+ ## 3.11.0 / 2017-11-20
76
+
77
+ * 2 features:
78
+ * HTTP 103 Early Hints (#1403)
79
+ * 421/451 status codes now have correct status messages attached (#1435)
80
+
81
+ * 9 bugfixes:
82
+ * Environment config files (/config/puma/<ENV>.rb) load correctly (#1340)
83
+ * Specify windows dependencies correctly (#1434, #1436)
84
+ * puma/events required in test helper (#1418)
85
+ * Correct control CLI's option help text (#1416)
86
+ * Remove a warning for unused variable in mini_ssl (#1409)
87
+ * Correct pumactl docs argument ordering (#1427)
88
+ * Fix an uninitialized variable warning in server.rb (#1430)
89
+ * Fix docs typo/error in Launcher init (#1429)
90
+ * Deal with leading spaces in RUBYOPT (#1455)
91
+
92
+ * 2 other:
93
+ * Add docs about internals (#1425, #1452)
94
+ * Tons of test fixes from @MSP-Greg (#1439, #1442, #1464)
95
+
96
+ ## 3.10.0 / 2017-08-17
97
+
98
+ * 3 features:
99
+ * The status server has a new /gc and /gc-status command. (#1384)
100
+ * The persistent and first data timeouts are now configurable (#1111)
101
+ * Implemented RFC 2324 (#1392)
102
+
103
+ * 12 bugfixes:
104
+ * 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)
105
+ * Fix hangups with SSL and persistent connections. (#1334)
106
+ * Fix Rails double-binding to a port (#1383)
107
+ * Fix incorrect thread names (#1368)
108
+ * Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. (#1318)
109
+ * Fix compatibility with RUBYOPT="--enable-frozen-string-literal" (#1376)
110
+ * Fixed some compiler warnings (#1388)
111
+ * We actually run the integration tests in CI now (#1390)
112
+ * No longer shipping unnecessary directories in the gemfile (#1391)
113
+ * If RUBYOPT is nil, we no longer blow up on restart. (#1385)
114
+ * Correct response to SIGINT (#1377)
115
+ * Proper exit code returned when we receive a TERM signal (#1337)
116
+
117
+ * 3 refactors:
118
+ * Various test improvements from @grosser
119
+ * Rubocop (#1325)
120
+ * Hoe has been removed (#1395)
121
+
122
+ * 1 known issue:
123
+ * Socket activation doesn't work in JRuby. Their fault, not ours. (#1367)
124
+
125
+ ## 3.9.1 / 2017-06-03
126
+
127
+ * 2 bugfixes:
128
+ * Fixed compatibility with older Bundler versions (#1314)
129
+ * Some internal test/development cleanup (#1311, #1313)
130
+
131
+ ## 3.9.0 / 2017-06-01
132
+
133
+ * 2 features:
134
+ * The ENV is now reset to its original values when Puma restarts via USR1/USR2 (#1260) (MRI only, no JRuby support)
135
+ * Puma will no longer accept more clients than the maximum number of threads. (#1278)
136
+
137
+ * 9 bugfixes:
138
+ * Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR (#1306)
139
+ * Fix SSL/WebSocket compatibility (#1274)
140
+ * HTTP headers with empty values are no longer omitted from responses. (#1261)
141
+ * Fix a Rack env key which was set to nil. (#1259)
142
+ * peercert has been implemented for JRuby (#1248)
143
+ * Fix port settings when using rails s (#1277, #1290)
144
+ * Fix compat w/LibreSSL (#1285)
145
+ * Fix restarting Puma w/symlinks and a new Gemfile (#1282)
146
+ * Replace Dir.exists? with Dir.exist? (#1294)
147
+
148
+ * 1 known issue:
149
+ * 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.
150
+
151
+ * 1 refactor:
152
+ * Lots of test fixups from @grosser.
153
+
154
+ ## 3.8.2 / 2017-03-14
155
+
156
+ * 1 bugfix:
157
+ * Deal with getsockopt with TCP\_INFO failing for sockets that say they're TCP but aren't really. (#1241)
158
+
159
+ ## 3.8.1 / 2017-03-10
160
+
161
+ * 1 bugfix:
162
+ * Remove method call to method that no longer exists (#1239)
163
+
164
+ ## 3.8.0 / 2017-03-09
165
+
166
+ * 2 bugfixes:
167
+ * Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ (#1234)
168
+ * The `tmp/restart.txt` plugin no longer restricts the user from running more than one server from the same folder at a time (#1226)
169
+
170
+ * 1 feature:
171
+ * Closed clients are aborted to save capacity (#1227)
172
+
173
+ * 1 refactor:
174
+ * Bundler is no longer a dependency from tests (#1213)
175
+
176
+ ## 3.7.1 / 2017-02-20
177
+
178
+ * 2 bugfixes:
179
+ * Fix typo which blew up MiniSSL (#1182)
180
+ * Stop overriding command-line options with the config file (#1203)
181
+
182
+ ## 3.7.0 / 2017-01-04
183
+
184
+ * 6 minor features:
185
+ * Allow rack handler to accept ssl host. (#1129)
186
+ * Refactor TTOU processing. TTOU now handles multiple signals at once. (#1165)
187
+ * Pickup any remaining chunk data as the next request.
188
+ * Prevent short term thread churn - increased auto trim default to 30 seconds.
189
+ * Raise error when `stdout` or `stderr` is not writable. (#1175)
190
+ * Add Rack 2.0 support to gemspec. (#1068)
191
+
192
+ * 5 refactors:
193
+ * Compare host and server name only once per call. (#1091)
194
+ * Minor refactor on Thread pool (#1088)
195
+ * Removed a ton of unused constants, variables and files.
196
+ * Use MRI macros when allocating heap memory
197
+ * Use hooks for on\_booted event. (#1160)
198
+
199
+ * 14 bugfixes:
200
+ * Add eof? method to NullIO? (#1169)
201
+ * Fix Puma startup in provided init.d script (#1061)
202
+ * Fix default SSL mode back to none. (#1036)
203
+ * Fixed the issue of @listeners getting nil io (#1120)
204
+ * Make `get_dh1024` compatible with OpenSSL v1.1.0 (#1178)
205
+ * More gracefully deal with SSL sessions. Fixes #1002
206
+ * Move puma.rb to just autoloads. Fixes #1063
207
+ * MiniSSL: Provide write as <<. Fixes #1089
208
+ * Prune bundler should inherit fds (#1114)
209
+ * Replace use of Process.getpgid which does not behave as intended on all platforms (#1110)
210
+ * Transfer encoding header should be downcased before comparison (#1135)
211
+ * Use same write log logic for hijacked requests. (#1081)
212
+ * Fix `uninitialized constant Puma::StateFile` (#1138)
213
+ * Fix access priorities of each level in LeveledOptions (#1118)
214
+
215
+ * 3 others:
216
+
217
+ * Lots of tests added/fixed/improved. Switched to Minitest from Test::Unit. Big thanks to @frodsan.
218
+ * Lots of documentation added/improved.
219
+ * Add license indicators to the HTTP extension. (#1075)
220
+
221
+ ## 3.6.2 / 2016-11-22
222
+
223
+ * 1 bug fix:
224
+
225
+ * Revert #1118/Fix access priorities of each level in LeveledOptions. This
226
+ had an unintentional side effect of changing the importance of command line
227
+ options, such as -p.
228
+
229
+ ## 3.6.1 / 2016-11-21
230
+
231
+ * 8 bug fixes:
232
+
233
+ * Fix Puma start in init.d script.
234
+ * Fix default SSL mode back to none. Fixes #1036
235
+ * Fixed the issue of @listeners getting nil io, fix rails restart (#1120)
236
+ * More gracefully deal with SSL sessions. Fixes #1002
237
+ * Prevent short term thread churn.
238
+ * Provide write as <<. Fixes #1089
239
+ * Fix access priorities of each level in LeveledOptions - fixes TTIN.
240
+ * Stub description files updated for init.d.
241
+
242
+ * 2 new project committers:
243
+
244
+ * Nate Berkopec (@nateberkopec)
245
+ * Richard Schneeman (@schneems)
246
+
247
+ ## 3.6.0 / 2016-07-24
248
+
249
+ * 12 bug fixes:
250
+ * Add ability to detect a shutting down server. Fixes #932
251
+ * Add support for Expect: 100-continue. Fixes #519
252
+ * Check SSLContext better. Fixes #828
253
+ * Clarify behavior of '-t num'. Fixes #984
254
+ * Don't default to VERIFY_PEER. Fixes #1028
255
+ * Don't use ENV['PWD'] on windows. Fixes #1023
256
+ * Enlarge the scope of catching app exceptions. Fixes #1027
257
+ * Execute background hooks after daemonizing. Fixes #925
258
+ * Handle HUP as a stop unless there is IO redirection. Fixes #911
259
+ * Implement chunked request handling. Fixes #620
260
+ * Just rescue exception to return a 500. Fixes #1027
261
+ * Redirect IO in the jruby daemon mode. Fixes #778
262
+
263
+ ## 3.5.2 / 2016-07-20
264
+
265
+ * 1 bug fix:
266
+ * Don't let persistent_timeout be nil
267
+
268
+ * 1 PR merged:
269
+ * Merge pull request #1021 from benzrf/patch-1
270
+
271
+ ## 3.5.1 / 2016-07-20
272
+
273
+ * 1 bug fix:
274
+ * Be sure to only listen on host:port combos once. Fixes #1022
275
+
276
+ ## 3.5.0 / 2016-07-18
277
+
278
+ * 1 minor features:
279
+ * Allow persistent_timeout to be configured via the dsl.
280
+
281
+ * 9 bug fixes:
282
+ * Allow a bare % in a query string. Fixes #958
283
+ * Explicitly listen on all localhost addresses. Fixes #782
284
+ * Fix `TCPLogger` log error in tcp cluster mode.
285
+ * Fix puma/puma#968 Cannot bind SSL port due to missing verify_mode option
286
+ * Fix puma/puma#968 Default verify_mode to peer
287
+ * Log any exceptions in ThreadPool. Fixes #1010
288
+ * Silence connection errors in the reactor. Fixes #959
289
+ * Tiny fixes in hook documentation for #840
290
+ * It should not log requests if we want it to be quiet
291
+
292
+ * 5 doc fixes:
293
+ * Add How to stop Puma on Heroku using plugins to the example directory
294
+ * Provide both hot and phased restart in jungle script
295
+ * Update reference to the instances management script
296
+ * Update default number of threads
297
+ * Fix typo in example config
298
+
299
+ * 14 PRs merged:
300
+ * Merge pull request #1007 from willnet/patch-1
301
+ * Merge pull request #1014 from jeznet/patch-1
302
+ * Merge pull request #1015 from bf4/patch-1
303
+ * Merge pull request #1017 from jorihardman/configurable_persistent_timeout
304
+ * Merge pull request #954 from jf/master
305
+ * Merge pull request #955 from jf/add-request-info-to-standard-error-rescue
306
+ * Merge pull request #956 from maxkwallace/master
307
+ * Merge pull request #960 from kmayer/kmayer-plugins-heroku-restart
308
+ * Merge pull request #969 from frankwong15/master
309
+ * Merge pull request #970 from willnet/delete-blank-document
310
+ * Merge pull request #974 from rocketjob/feature/name_threads
311
+ * Merge pull request #977 from snow/master
312
+ * Merge pull request #981 from zach-chai/patch-1
313
+ * Merge pull request #993 from scorix/master
314
+
315
+ ## 3.4.0 / 2016-04-07
316
+
317
+ * 2 minor features:
318
+ * Add ability to force threads to stop on shutdown. Fixes #938
319
+ * Detect and commit seppuku when fork(2) fails. Fixes #529
320
+
321
+ * 3 unknowns:
322
+ * Ignore errors trying to update the backport tables. Fixes #788
323
+ * Invoke the lowlevel_error in more places to allow for exception tracking. Fixes #894
324
+ * Update the query string when an absolute URI is used. Fixes #937
325
+
326
+ * 5 doc fixes:
327
+ * Add Process Monitors section to top-level README
328
+ * Better document the hooks. Fixes #840
329
+ * docs/system.md sample config refinements and elaborations
330
+ * Fix typos at couple of places.
331
+ * Cleanup warnings
332
+
333
+ * 3 PRs merged:
334
+ * Merge pull request #945 from dekellum/systemd-docs-refined
335
+ * Merge pull request #946 from vipulnsward/rm-pid
336
+ * Merge pull request #947 from vipulnsward/housekeeping-typos
337
+
338
+ ## 3.3.0 / 2016-04-05
339
+
340
+ * 2 minor features:
341
+ * Allow overriding options of Configuration object
342
+ * Rename to inherit_ssl_listener like inherit_tcp|unix
343
+
344
+ * 2 doc fixes:
345
+ * Add docs/systemd.md (with socket activation sub-section)
346
+ * Document UNIX signals with cluster on README.md
347
+
348
+ * 3 PRs merged:
349
+ * Merge pull request #936 from prathamesh-sonpatki/allow-overriding-config-options
350
+ * Merge pull request #940 from kyledrake/signalsdoc
351
+ * Merge pull request #942 from dekellum/socket-activate-improve
352
+
353
+ ## 3.2.0 / 2016-03-20
354
+
355
+ * 1 deprecation removal:
356
+ * Delete capistrano.rb
357
+
358
+ * 3 bug fixes:
359
+ * Detect gems.rb as well as Gemfile
360
+ * Simplify and fix logic for directory to use when restarting for all phases
361
+ * Speed up phased-restart start
362
+
363
+ * 2 PRs merged:
364
+ * Merge pull request #927 from jlecour/gemfile_variants
365
+ * Merge pull request #931 from joneslee85/patch-10
366
+
367
+ ## 3.1.1 / 2016-03-17
368
+
369
+ * 4 bug fixes:
370
+ * Disable USR1 usage on JRuby
371
+ * Fixes #922 - Correctly define file encoding as UTF-8
372
+ * Set a more explicit SERVER_SOFTWARE Rack variable
373
+ * Show RUBY_ENGINE_VERSION if available. Fixes #923
374
+
375
+ * 3 PRs merged:
376
+ * Merge pull request #912 from tricknotes/fix-allow-failures-in-travis-yml
377
+ * Merge pull request #921 from swrobel/patch-1
378
+ * Merge pull request #924 from tbrisker/patch-1
379
+
380
+ ## 3.1.0 / 2016-03-05
381
+
382
+ * 1 minor feature:
383
+ * Add 'import' directive to config file. Fixes #916
384
+
385
+ * 5 bug fixes:
386
+ * Add 'fetch' to options. Fixes #913
387
+ * Fix jruby daemonization. Fixes #918
388
+ * Recreate the proper args manually. Fixes #910
389
+ * Require 'time' to get iso8601. Fixes #914
390
+
391
+ ## 3.0.2 / 2016-02-26
392
+
393
+ * 5 bug fixes:
394
+
395
+ * Fix 'undefined local variable or method `pid` for #<Puma::ControlCLI:0x007f185fcef968>' when execute pumactl with `--pid` option.
396
+ * Fix 'undefined method `windows?` for Puma:Module' when execute pumactl.
397
+ * Harden tmp_restart against errors related to the restart file
398
+ * Make `plugin :tmp_restart` behavior correct in Windows.
399
+ * fix uninitialized constant Puma::ControlCLI::StateFile
400
+
401
+ * 3 PRs merged:
402
+
403
+ * Merge pull request #901 from mitto/fix-pumactl-uninitialized-constant-statefile
404
+ * Merge pull request #902 from corrupt952/fix_undefined_method_and_variable_when_execute_pumactl
405
+ * Merge pull request #905 from Eric-Guo/master
406
+
407
+ ## 3.0.1 / 2016-02-25
408
+
409
+ * 1 bug fix:
410
+
411
+ * Removed the experimental support for async.callback as it broke
412
+ websockets entirely. Seems no server has both hijack and async.callback
413
+ and thus faye is totally confused what to do and doesn't work.
414
+
415
+ ## 3.0.0 / 2016-02-25
416
+
417
+ * 2 major changes:
418
+
419
+ * Ruby pre-2.0 is no longer supported. We'll do our best to not add
420
+ features that break those rubies but will no longer be testing
421
+ with them.
422
+ * Don't log requests by default. Fixes #852
423
+
424
+ * 2 major features:
425
+
426
+ * Plugin support! Plugins can interact with configuration as well
427
+ as provide augment server functionality!
428
+ * Experimental env['async.callback'] support
429
+
430
+ * 4 minor features:
431
+
432
+ * Listen to unix socket with provided backlog if any
433
+ * Improves the clustered stats to report worker stats
434
+ * Pass the env to the lowlevel_error handler. Fixes #854
435
+ * Treat path-like hosts as unix sockets. Fixes #824
436
+
437
+ * 5 bug fixes:
438
+
439
+ * Clean thread locals when using keepalive. Fixes #823
440
+ * Cleanup compiler warnings. Fixes #815
441
+ * Expose closed? for use by the reactor. Fixes #835
442
+ * Move signal handlers to separate method to prevent space leak. Fixes #798
443
+ * Signal not full on worker exit #876
444
+
445
+ * 5 doc fixes:
446
+
447
+ * Update README.md with various grammar fixes
448
+ * Use newest version of Minitest
449
+ * Add directory configuration docs, fix typo [ci skip]
450
+ * Remove old COPYING notice. Fixes #849
451
+
452
+ * 10 merged PRs:
453
+
454
+ * Merge pull request #871 from deepj/travis
455
+ * Merge pull request #874 from wallclockbuilder/master
456
+ * Merge pull request #883 from dadah89/igor/trim_only_worker
457
+ * Merge pull request #884 from uistudio/async-callback
458
+ * Merge pull request #888 from mlarraz/tick_minitest
459
+ * Merge pull request #890 from todd/directory_docs
460
+ * Merge pull request #891 from ctaintor/improve_clustered_status
461
+ * Merge pull request #893 from spastorino/add_missing_require
462
+ * Merge pull request #897 from zendesk/master
463
+ * Merge pull request #899 from kch/kch-readme-fixes
464
+
465
+ ## 2.16.0 / 2016-01-27
466
+
467
+ * 7 minor features:
468
+
469
+ * Add 'set_remote_address' config option
470
+ * Allow to run puma in silent mode
471
+ * Expose cli options in DSL
472
+ * Support passing JRuby keystore info in ssl_bind DSL
473
+ * Allow umask for unix:/// style control urls
474
+ * Expose `old_worker_count` in stats url
475
+ * Support TLS client auth (verify_mode) in jruby
476
+
477
+ * 7 bug fixes:
478
+
479
+ * Don't persist before_fork hook in state file
480
+ * Reload bundler before pulling in rack. Fixes #859
481
+ * Remove NEWRELIC_DISPATCHER env variable
482
+ * Cleanup C code
483
+ * Use Timeout.timeout instead of Object.timeout
484
+ * Make phased restarts faster
485
+ * Ignore the case of certain headers, because HTTP
486
+
487
+ * 1 doc changes:
488
+
489
+ * Test against the latest Ruby 2.1, 2.2, 2.3, head and JRuby 9.0.4.0 on Travis
490
+
491
+ * 12 merged PRs
492
+ * Merge pull request #822 from kwugirl/remove_NEWRELIC_DISPATCHER
493
+ * Merge pull request #833 from joemiller/jruby-client-tls-auth
494
+ * Merge pull request #837 from YuriSolovyov/ssl-keystore-jruby
495
+ * Merge pull request #839 from mezuka/master
496
+ * Merge pull request #845 from deepj/timeout-deprecation
497
+ * Merge pull request #846 from sriedel/strip_before_fork
498
+ * Merge pull request #850 from deepj/travis
499
+ * Merge pull request #853 from Jeffrey6052/patch-1
500
+ * Merge pull request #857 from zendesk/faster_phased_restarts
501
+ * Merge pull request #858 from mlarraz/fix_some_warnings
502
+ * Merge pull request #860 from zendesk/expose_old_worker_count
503
+ * Merge pull request #861 from zendesk/allow_control_url_umask
504
+
505
+ ## 2.15.3 / 2015-11-07
506
+
507
+ * 1 bug fix:
508
+
509
+ * Fix JRuby parser
510
+
511
+ ## 2.15.2 / 2015-11-06
512
+
513
+ * 2 bug fixes:
514
+ * ext/puma_http11: handle duplicate headers as per RFC
515
+ * Only set ctx.ca iff there is a params['ca'] to set with.
516
+
517
+ * 2 PRs merged:
518
+ * Merge pull request #818 from unleashed/support-duplicate-headers
519
+ * Merge pull request #819 from VictorLowther/fix-ca-and-verify_null-exception
520
+
521
+ ## 2.15.1 / 2015-11-06
522
+
523
+ * 1 bug fix:
524
+
525
+ * Allow older openssl versions
526
+
527
+ ## 2.15.0 / 2015-11-06
528
+
529
+ * 6 minor features:
530
+ * Allow setting ca without setting a verify mode
531
+ * Make jungle for init.d support rbenv
532
+ * Use SSL_CTX_use_certificate_chain_file for full chain
533
+ * cluster: add worker_boot_timeout option
534
+ * configuration: allow empty tags to mean no tag desired
535
+ * puma/cli: support specifying STD{OUT,ERR} redirections and append mode
536
+
537
+ * 5 bug fixes:
538
+ * Disable SSL Compression
539
+ * Fix bug setting worker_directory when using a symlink directory
540
+ * Fix error message in DSL that was slightly inaccurate
541
+ * Pumactl: set correct process name. Fixes #563
542
+ * thread_pool: fix race condition when shutting down workers
543
+
544
+ * 10 doc fixes:
545
+ * Add before_fork explanation in Readme.md
546
+ * Correct spelling in DEPLOYMENT.md
547
+ * Correct spelling in docs/nginx.md
548
+ * Fix spelling errors.
549
+ * Fix typo in deployment description
550
+ * Fix typos (it's -> its) in events.rb and server.rb
551
+ * fixing for typo mentioned in #803
552
+ * Spelling correction for README
553
+ * thread_pool: fix typos in comment
554
+ * More explicit docs for worker_timeout
555
+
556
+ * 18 PRs merged:
557
+ * Merge pull request #768 from nathansamson/patch-1
558
+ * Merge pull request #773 from rossta/spelling_corrections
559
+ * Merge pull request #774 from snow/master
560
+ * Merge pull request #781 from sunsations/fix-typo
561
+ * Merge pull request #791 from unleashed/allow_empty_tags
562
+ * Merge pull request #793 from robdimarco/fix-working-directory-symlink-bug
563
+ * Merge pull request #794 from peterkeen/patch-1
564
+ * Merge pull request #795 from unleashed/redirects-from-cmdline
565
+ * Merge pull request #796 from cschneid/fix_dsl_message
566
+ * Merge pull request #799 from annafw/master
567
+ * Merge pull request #800 from liamseanbrady/fix_typo
568
+ * Merge pull request #801 from scottjg/ssl-chain-file
569
+ * Merge pull request #802 from scottjg/ssl-crimes
570
+ * Merge pull request #804 from burningTyger/patch-2
571
+ * Merge pull request #809 from unleashed/threadpool-fix-race-in-shutdown
572
+ * Merge pull request #810 from vlmonk/fix-pumactl-restart-bug
573
+ * Merge pull request #814 from schneems/schneems/worker_timeout-docs
574
+ * Merge pull request #817 from unleashed/worker-boot-timeout
575
+
576
+ ## 2.14.0 / 2015-09-18
577
+
578
+ * 1 minor feature:
579
+ * Make building with SSL support optional
580
+
581
+ * 1 bug fix:
582
+ * Use Rack::Builder if available. Fixes #735
583
+
584
+ ## 2.13.4 / 2015-08-16
585
+
586
+ * 1 bug fix:
587
+ * Use the environment possible set by the config early and from
588
+ the config file later (if set).
589
+
590
+ ## 2.13.3 / 2015-08-15
591
+
592
+ Seriously, I need to revamp config with tests.
593
+
594
+ * 1 bug fix:
595
+ * Fix preserving options before cleaning for state. Fixes #769
596
+
597
+ ## 2.13.2 / 2015-08-15
598
+
599
+ The "clearly I don't have enough tests for the config" release.
600
+
601
+ * 1 bug fix:
602
+ * Fix another place binds wasn't initialized. Fixes #767
603
+
604
+ ## 2.13.1 / 2015-08-15
605
+
606
+ * 2 bug fixes:
607
+ * Fix binds being masked in config files. Fixes #765
608
+ * Use options from the config file properly in pumactl. Fixes #764
609
+
610
+ ## 2.13.0 / 2015-08-14
611
+
612
+ * 1 minor feature:
613
+ * Add before_fork hooks option.
614
+
615
+ * 3 bug fixes:
616
+ * Check for OPENSSL_NO_ECDH before using ECDH
617
+ * Eliminate logging overhead from JRuby SSL
618
+ * Prefer cli options over config file ones. Fixes #669
619
+
620
+ * 1 deprecation:
621
+ * Add deprecation warning to capistrano.rb. Fixes #673
622
+
623
+ * 4 PRs merged:
624
+ * Merge pull request #668 from kcollignon/patch-1
625
+ * Merge pull request #754 from nathansamson/before_boot
626
+ * Merge pull request #759 from BenV/fix-centos6-build
627
+ * Merge pull request #761 from looker/no-log
628
+
629
+ ## 2.12.3 / 2015-08-03
630
+
631
+ * 8 minor bugs fixed:
632
+ * Fix Capistrano 'uninitialized constant Puma' error.
633
+ * Fix some ancient and incorrect error handling code
634
+ * Fix uninitialized constant error
635
+ * Remove toplevel rack interspection, require rack on load instead
636
+ * Skip empty parts when chunking
637
+ * Switch from inject to each in config_ru_binds iteration
638
+ * Wrap SSLv3 spec in version guard.
639
+ * ruby 1.8.7 compatibility patches
640
+
641
+ * 4 PRs merged:
642
+ * Merge pull request #742 from deivid-rodriguez/fix_missing_require
643
+ * Merge pull request #743 from matthewd/skip-empty-chunks
644
+ * Merge pull request #749 from huacnlee/fix-cap-uninitialized-puma-error
645
+ * Merge pull request #751 from costi/compat_1_8_7
646
+
647
+ * 1 test fix:
648
+ * Add 1.8.7, rbx-1 (allow failures) to Travis.
649
+
650
+ ## 2.12.2 / 2015-07-17
651
+
652
+ * 2 bug fix:
653
+ * Pull over and use Rack::URLMap. Fixes #741
654
+ * Stub out peercert on JRuby for now. Fixes #739
655
+
656
+ ## 2.12.1 / 2015-07-16
657
+
658
+ * 2 bug fixes:
659
+ * Use a constant format. Fixes #737
660
+ * Use strerror for Windows sake. Fixes #733
661
+
662
+ * 1 doc change:
663
+ * typo fix: occured -> occurred
664
+
665
+ * 1 PR merged:
666
+ * Merge pull request #736 from paulanunda/paulanunda/typo-fix
667
+
668
+ ## 2.12.0 / 2015-07-14
669
+
670
+ * 13 bug fixes:
671
+ * Add thread reaping to thread pool
672
+ * Do not automatically use chunked responses when hijacked
673
+ * Do not suppress Content-Length on partial hijack
674
+ * Don't allow any exceptions to terminate a thread
675
+ * Handle ENOTCONN client disconnects when setting REMOTE_ADDR
676
+ * Handle very early exit of cluster mode. Fixes #722
677
+ * Install rack when running tests on travis to use rack/lint
678
+ * Make puma -v and -h return success exit code
679
+ * Make pumactl load config/puma.rb by default
680
+ * Pass options from pumactl properly when pruning. Fixes #694
681
+ * Remove rack dependency. Fixes #705
682
+ * Remove the default Content-Type: text/plain
683
+ * Add Client Side Certificate Auth
684
+
685
+ * 8 doc/test changes:
686
+ * Added example sourcing of environment vars
687
+ * Added tests for bind configuration on rackup file
688
+ * Fix example config text
689
+ * Update DEPLOYMENT.md
690
+ * Update Readme with example of custom error handler
691
+ * ci: Improve Travis settings
692
+ * ci: Start running tests against JRuby 9k on Travis
693
+ * ci: Convert to container infrastructure for travisci
694
+
695
+ * 2 ops changes:
696
+ * Check for system-wide rbenv
697
+ * capistrano: Add additional env when start rails
698
+
699
+ * 16 PRs merged:
700
+ * Merge pull request #686 from jjb/patch-2
701
+ * Merge pull request #693 from rob-murray/update-example-config
702
+ * Merge pull request #697 from spk/tests-bind-on-rackup-file
703
+ * Merge pull request #699 from deees/fix/require_rack_builder
704
+ * Merge pull request #701 from deepj/master
705
+ * Merge pull request #702 from Jimdo/thread-reaping
706
+ * Merge pull request #703 from deepj/travis
707
+ * Merge pull request #704 from grega/master
708
+ * Merge pull request #709 from lian/master
709
+ * Merge pull request #711 from julik/master
710
+ * Merge pull request #712 from yakara-ltd/pumactl-default-config
711
+ * Merge pull request #715 from RobotJiang/master
712
+ * Merge pull request #725 from rwz/master
713
+ * Merge pull request #726 from strenuus/handle-client-disconnect
714
+ * Merge pull request #729 from allaire/patch-1
715
+ * Merge pull request #730 from iamjarvo/container-infrastructure
716
+
717
+ ## 2.11.3 / 2015-05-18
718
+
719
+ * 5 bug fixes:
720
+ * Be sure to unlink tempfiles after a request. Fixes #690
721
+ * Coerce the key to a string before checking. (thar be symbols). Fixes #684
722
+ * Fix hang on bad SSL handshake
723
+ * Remove `enable_SSLv3` support from JRuby
724
+
725
+ * 1 PR merged:
726
+ * Merge pull request #698 from looker/hang-handshake
727
+
728
+ ## 2.11.2 / 2015-04-11
729
+
730
+ * 2 minor features:
731
+ * Add `on_worker_fork` hook, which allows to mimic Unicorn's behavior
732
+ * Add shutdown_debug config option
733
+
734
+ * 4 bug fixes:
735
+ * Fix the Config constants not being available in the DSL. Fixes #683
736
+ * Ignore multiple port declarations
737
+ * Proper 'Connection' header handling compatible with HTTP 1.[01] protocols
738
+ * Use "Puma" instead of "puma" to reporting to New Relic
739
+
740
+ * 1 doc fixes:
741
+ * Add Gitter badge.
742
+
743
+ * 6 PRs merged:
744
+ * Merge pull request #657 from schneems/schneems/puma-once-port
745
+ * Merge pull request #658 from Tomohiro/newrelic-dispatcher-default-update
746
+ * Merge pull request #662 from basecrm/connection-compatibility
747
+ * Merge pull request #664 from fxposter/on-worker-fork
748
+ * Merge pull request #667 from JuanitoFatas/doc/gemspec
749
+ * Merge pull request #672 from chulkilee/refactor
750
+
751
+ ## 2.11.1 / 2015-02-11
752
+
753
+ * 2 bug fixes:
754
+ * Avoid crash in strange restart conditions
755
+ * Inject the GEM_HOME that bundler into puma-wild's env. Fixes #653
756
+
757
+ * 2 PRs merged:
758
+ * Merge pull request #644 from bpaquet/master
759
+ * Merge pull request #646 from mkonecny/master
760
+
761
+ ## 2.11.0 / 2015-01-20
762
+
763
+ * 9 bug fixes:
764
+ * Add mode as an additional bind option to unix sockets. Fixes #630
765
+ * Advertise HTTPS properly after a hot restart
766
+ * Don't write lowlevel_error_handler to state
767
+ * Fix phased restart with stuck requests
768
+ * Handle spaces in the path properly. Fixes #622
769
+ * Set a default REMOTE_ADDR to avoid using peeraddr on unix sockets. Fixes #583
770
+ * Skip device number checking on jruby. Fixes #586
771
+ * Update extconf.rb to compile correctly on OS X
772
+ * redirect io right after daemonizing so startup errors are shown. Fixes #359
773
+
774
+ * 6 minor features:
775
+ * Add a configuration option that prevents puma from queueing requests.
776
+ * Add reload_worker_directory
777
+ * Add the ability to pass environment variables to the init script (for Jungle).
778
+ * Add the proctitle tag to the worker. Fixes #633
779
+ * Infer a proctitle tag based on the directory
780
+ * Update lowlevel error message to be more meaningful.
781
+
782
+ * 10 PRs merged:
783
+ * Merge pull request #478 from rubencaro/master
784
+ * Merge pull request #610 from kwilczynski/master
785
+ * Merge pull request #611 from jasonl/better-lowlevel-message
786
+ * Merge pull request #616 from jc00ke/master
787
+ * Merge pull request #623 from raldred/patch-1
788
+ * Merge pull request #628 from rdpoor/master
789
+ * Merge pull request #634 from deepj/master
790
+ * Merge pull request #637 from raskhadafi/patch-1
791
+ * Merge pull request #639 from ebeigarts/fix-phased-restarts
792
+ * Merge pull request #640 from codehotter/issue-612-dependent-requests-deadlock
793
+
794
+ ## 2.10.2 / 2014-11-26
795
+
796
+ * 1 bug fix:
797
+ * Conditionalize thread local cleaning, fixes perf degradation fix
798
+ The code to clean out all Thread locals adds pretty significant
799
+ overhead to a each request, so it has to be turned on explicitly
800
+ if a user needs it.
801
+
802
+ ## 2.10.1 / 2014-11-24
803
+
804
+ * 1 bug fix:
805
+ * Load the app after daemonizing because the app might start threads.
806
+
807
+ This change means errors loading the app are now reported only in the redirected
808
+ stdout/stderr.
809
+
810
+ If you're app has problems starting up, start it without daemon mode initially
811
+ to test.
812
+
813
+ ## 2.10.0 / 2014-11-23
814
+
815
+ * 3 minor features:
816
+ * Added on_worker_shutdown hook mechanism
817
+ * Allow binding to ipv6 addresses for ssl URIs
818
+ * Warn about any threads started during app preload
819
+
820
+ * 5 bug fixes:
821
+ * Clean out a threads local data before doing work
822
+ * Disable SSLv3. Fixes #591
823
+ * First change the directory to use the correct Gemfile.
824
+ * Only use config.ru binds if specified. Fixes #606
825
+ * Strongish cipher suite with FS support for some browsers
826
+
827
+ * 2 doc changes:
828
+ * Change umask examples to more permissive values
829
+ * fix typo in README.md
830
+
831
+ * 9 Merged PRs:
832
+ * Merge pull request #560 from raskhadafi/prune_bundler-bug
833
+ * Merge pull request #566 from sheltond/master
834
+ * Merge pull request #593 from andruby/patch-1
835
+ * Merge pull request #594 from hassox/thread-cleanliness
836
+ * Merge pull request #596 from burningTyger/patch-1
837
+ * Merge pull request #601 from sorentwo/friendly-umask
838
+ * Merge pull request #602 from 1334/patch-1
839
+ * Merge pull request #608 from Gu1/master
840
+ * Merge remote-tracking branch 'origin/pr/538'
841
+
842
+ ## 2.9.2 / 2014-10-25
843
+
844
+ * 8 bug fixes:
845
+ * Fix puma-wild handling a restart properly. Fixes #550
846
+ * JRuby SSL POODLE update
847
+ * Keep deprecated features warnings
848
+ * Log the current time when Puma shuts down.
849
+ * Fix cross-platform extension library detection
850
+ * Use the correct Windows names for OpenSSL.
851
+ * Better error logging during startup
852
+ * Fixing sexist error messages
853
+
854
+ * 6 PRs merged:
855
+ * Merge pull request #549 from bsnape/log-shutdown-time
856
+ * Merge pull request #553 from lowjoel/master
857
+ * Merge pull request #568 from mariuz/patch-1
858
+ * Merge pull request #578 from danielbuechele/patch-1
859
+ * Merge pull request #581 from alexch/slightly-better-logging
860
+ * Merge pull request #590 from looker/jruby_disable_sslv3
861
+
862
+ ## 2.9.1 / 2014-09-05
863
+
864
+ * 4 bug fixes:
865
+ * Cleanup the SSL related structures properly, fixes memory leak
866
+ * Fix thread spawning edge case.
867
+ * Force a worker check after a worker boots, don't wait 5sec. Fixes #574
868
+ * Implement SIGHUP for logs reopening
869
+
870
+ * 2 PRs merged:
871
+ * Merge pull request #561 from theoldreader/sighup
872
+ * Merge pull request #570 from havenwood/spawn-thread-edge-case
873
+
874
+ ## 2.9.0 / 2014-07-12
875
+
876
+ * 1 minor feature:
877
+ * Add SSL support for JRuby
878
+
879
+ * 3 bug fixes:
880
+ * Typo BUNDLER_GEMFILE -> BUNDLE_GEMFILE
881
+ * Use fast_write because we can't trust syswrite
882
+ * pumactl - do not modify original ARGV
883
+
884
+ * 4 doc fixes:
885
+ * BSD-3-Clause over BSD to avoid confusion
886
+ * Deploy doc: clarification of the GIL
887
+ * Fix typo in DEPLOYMENT.md
888
+ * Update README.md
889
+
890
+ * 6 PRs merged:
891
+ * Merge pull request #520 from misfo/patch-2
892
+ * Merge pull request #530 from looker/jruby-ssl
893
+ * Merge pull request #537 from vlmonk/patch-1
894
+ * Merge pull request #540 from allaire/patch-1
895
+ * Merge pull request #544 from chulkilee/bsd-3-clause
896
+ * Merge pull request #551 from jcxplorer/patch-1
897
+
898
+ ## 2.8.2 / 2014-04-12
899
+
900
+ * 4 bug fixes:
901
+ * During upgrade, change directory in main process instead of workers.
902
+ * Close the client properly on error
903
+ * Capistrano: fallback from phased restart to start when not started
904
+ * Allow tag option in conf file
905
+
906
+ * 4 doc fixes:
907
+ * Fix Puma daemon service README typo
908
+ * `preload_app!` instead of `preload_app`
909
+ * add preload_app and prune_bundler to example config
910
+ * allow changing of worker_timeout in config file
911
+
912
+ * 11 PRs merged:
913
+ * Merge pull request #487 from ckuttruff/master
914
+ * Merge pull request #492 from ckuttruff/master
915
+ * Merge pull request #493 from alepore/config_tag
916
+ * Merge pull request #503 from mariuz/patch-1
917
+ * Merge pull request #505 from sammcj/patch-1
918
+ * Merge pull request #506 from FlavourSys/config_worker_timeout
919
+ * Merge pull request #510 from momer/rescue-block-handle-servers-fix
920
+ * Merge pull request #511 from macool/patch-1
921
+ * Merge pull request #514 from edogawaconan/refactor_env
922
+ * Merge pull request #517 from misfo/patch-1
923
+ * Merge pull request #518 from LongMan/master
924
+
925
+ ## 2.8.1 / 2014-03-06
926
+
927
+ * 1 bug fixes:
928
+ * Run puma-wild with proper deps for prune_bundler
929
+
930
+ * 2 doc changes:
931
+ * Described the configuration file finding behavior added in 2.8.0 and how to disable it.
932
+ * Start the deployment doc
933
+
934
+ * 6 PRs merged:
935
+ * Merge pull request #471 from arthurnn/fix_test
936
+ * Merge pull request #485 from joneslee85/patch-9
937
+ * Merge pull request #486 from joshwlewis/patch-1
938
+ * Merge pull request #490 from tobinibot/patch-1
939
+ * Merge pull request #491 from brianknight10/clarify-no-config
940
+
941
+ ## 2.8.0 / 2014-02-28
942
+
943
+ * 8 minor features:
944
+ * Add ability to autoload a config file. Fixes #438
945
+ * Add ability to detect and terminate hung workers. Fixes #333
946
+ * Add booted_workers to stats response
947
+ * Add config to customize the default error message
948
+ * Add prune_bundler option
949
+ * Add worker indexes, expose them via on_worker_boot. Fixes #440
950
+ * Add pretty process name
951
+ * Show the ruby version in use
952
+
953
+ * 7 bug fixes:
954
+ * Added 408 status on timeout.
955
+ * Be more hostile with sockets that write block. Fixes #449
956
+ * Expect at_exit to exclusively remove the pidfile. Fixes #444
957
+ * Expose latency and listen backlog via bind query. Fixes #370
958
+ * JRuby raises IOError if the socket is there. Fixes #377
959
+ * Process requests fairly. Fixes #406
960
+ * Rescue SystemCallError as well. Fixes #425
961
+
962
+ * 4 doc changes:
963
+ * Add 2.1.0 to the matrix
964
+ * Add Code Climate badge to README
965
+ * Create signals.md
966
+ * Set the license to BSD. Fixes #432
967
+
968
+ * 14 PRs merged:
969
+ * Merge pull request #428 from alexeyfrank/capistrano_default_hooks
970
+ * Merge pull request #429 from namusyaka/revert-const_defined
971
+ * Merge pull request #431 from mrb/master
972
+ * Merge pull request #433 from alepore/process-name
973
+ * Merge pull request #437 from ibrahima/master
974
+ * Merge pull request #446 from sudara/master
975
+ * Merge pull request #451 from pwiebe/status_408
976
+ * Merge pull request #453 from joevandyk/patch-1
977
+ * Merge pull request #470 from arthurnn/fix_458
978
+ * Merge pull request #472 from rubencaro/master
979
+ * Merge pull request #480 from jjb/docs-on-running-test-suite
980
+ * Merge pull request #481 from schneems/master
981
+ * Merge pull request #482 from prathamesh-sonpatki/signals-doc-cleanup
982
+ * Merge pull request #483 from YotpoLtd/master
983
+
984
+ ## 2.7.1 / 2013-12-05
985
+
986
+ * 1 bug fix:
987
+
988
+ * Keep STDOUT/STDERR the right mode. Fixes #422
989
+
990
+ ## 2.7.0 / 2013-12-03
991
+
992
+ * 1 minor feature:
993
+ * Adding TTIN and TTOU to increment/decrement workers
994
+
995
+ * N bug fixes:
996
+ * Always use our Process.daemon because it's not busted
997
+ * Add capistrano restart failback to start.
998
+ * Change position of `cd` so that rvm gemset is loaded
999
+ * Clarify some platform specifics
1000
+ * Do not close the pipe sockets when retrying
1001
+ * Fix String#byteslice for Ruby 1.9.1, 1.9.2
1002
+ * Fix compatibility with 1.8.7.
1003
+ * Handle IOError closed stream in IO.select
1004
+ * Increase the max URI path length to 2048 chars from 1024 chars
1005
+ * Upstart jungle use config/puma.rb instead
1006
+
1007
+ ## 2.6.0 / 2013-09-13
1008
+
1009
+ * 2 minor features:
1010
+ * Add support for event hooks
1011
+ ** Add a hook for state transitions
1012
+ * Add phased restart to capistrano recipe.
1013
+
1014
+ * 4 bug fixes:
1015
+ * Convince workers to stop by SIGKILL after timeout
1016
+ * Define RSTRING_NOT_MODIFIED for Rubinius performance
1017
+ * Handle BrokenPipe, StandardError and IOError in fat_wrote and break out
1018
+ * Return success status to the invoking environment
1019
+
1020
+ ## 2.5.1 / 2013-08-13
1021
+
1022
+ * 2 bug fixes:
1023
+
1024
+ * Keep jruby daemon mode from retrying on a hot restart
1025
+ * Extract version from const.rb in gemspec
1026
+
1027
+ ## 2.5.0 / 2013-08-08
1028
+
1029
+ * 2 minor features:
1030
+ * Allow configuring pumactl with config.rb
1031
+ * make `pumactl restart` start puma if not running
1032
+
1033
+ * 6 bug fixes:
1034
+ * Autodetect ruby managers and home directory in upstart script
1035
+ * Convert header values to string before sending.
1036
+ * Correctly report phased-restart availability
1037
+ * Fix pidfile creation/deletion race on jruby daemonization
1038
+ * Use integers when comparing thread counts
1039
+ * Fix typo in using lopez express (raw tcp) mode
1040
+
1041
+ * 6 misc changes:
1042
+ * Fix typo in phased-restart response
1043
+ * Uncomment setuid/setgid by default in upstart
1044
+ * Use Puma::Const::PUMA_VERSION in gemspec
1045
+ * Update upstart comments to reflect new commandline
1046
+ * Remove obsolete pumactl instructions; refer to pumactl for details
1047
+ * Make Bundler used puma.gemspec version agnostic
1048
+
1049
+ ## 2.4.1 / 2013-08-07
1050
+
1051
+ * 1 experimental feature:
1052
+ * Support raw tcp servers (aka Lopez Express mode)
1053
+
1054
+ ## 2.4.0 / 2013-07-22
1055
+
1056
+ * 5 minor features:
1057
+ * Add PUMA_JRUBY_DAEMON_OPTS to get around agent starting twice
1058
+ * Add ability to drain accept socket on shutdown
1059
+ * Add port to DSL
1060
+ * Adds support for using puma config file in capistrano deploys.
1061
+ * Make phased_restart fallback to restart if not available
1062
+
1063
+ * 10 bug fixes:
1064
+
1065
+ * Be sure to only delete the pid in the master. Fixes #334
1066
+ * Call out -C/--config flags
1067
+ * Change parser symbol names to avoid clash. Fixes #179
1068
+ * Convert thread pool sizes to integers
1069
+ * Detect when the jruby daemon child doesn't start properly
1070
+ * Fix typo in CLI help
1071
+ * Improve the logging output when hijack is used. Fixes #332
1072
+ * Remove unnecessary thread pool size conversions
1073
+ * Setup :worker_boot as an Array. Fixes #317
1074
+ * Use 127.0.0.1 as REMOTE_ADDR of unix client. Fixes #309
1075
+
1076
+
1077
+ ## 2.3.2 / 2013-07-08
1078
+
1079
+ * 1 bug fix:
1080
+
1081
+ * Move starting control server to after daemonization.
1082
+
1083
+ ## 2.3.1 / 2013-07-06
1084
+
1085
+ * 2 bug fixes:
1086
+
1087
+ * Include the right files in the Manifest.
1088
+ * Disable inheriting connections on restart on windows. Fixes #166
1089
+
1090
+ * 1 doc change:
1091
+ * Better document some platform constraints
1092
+
1093
+ ## 2.3.0 / 2013-07-05
1094
+
1095
+ * 1 major bug fix:
1096
+
1097
+ * Stabilize control server, add support in cluster mode
1098
+
1099
+ * 5 minor bug fixes:
1100
+
1101
+ * Add ability to cleanup stale unix sockets
1102
+ * Check status data better. Fixes #292
1103
+ * Convert raw IO errors to ConnectionError. Fixes #274
1104
+ * Fix sending Content-Type and Content-Length for no body status. Fixes #304
1105
+ * Pass state path through to `pumactl start`. Fixes #287
1106
+
1107
+ * 2 internal changes:
1108
+
1109
+ * Refactored modes into seperate classes that CLI uses
1110
+ * Changed CLI to take an Events object instead of stdout/stderr (API change)
1111
+
1112
+ ## 2.2.2 / 2013-07-02
1113
+
1114
+ * 1 bug fix:
1115
+
1116
+ * Fix restart_command in the config
1117
+
1118
+ ## 2.2.1 / 2013-07-02
1119
+
1120
+ * 1 minor feature:
1121
+
1122
+ * Introduce preload flag
1123
+
1124
+ * 1 bug fix:
1125
+
1126
+ * Pass custom restart command in JRuby
1127
+
1128
+ ## 2.2.0 / 2013-07-01
1129
+
1130
+ * 1 major feature:
1131
+
1132
+ * Add ability to preload rack app
1133
+
1134
+ * 2 minor bugfixes:
1135
+
1136
+ * Don't leak info when not in development. Fixes #256
1137
+ * Load the app, then bind the ports
1138
+
1139
+ ## 2.1.1 / 2013-06-20
1140
+
1141
+ * 2 minor bug fixes:
1142
+
1143
+ * Fix daemonization on jruby
1144
+ * Load the application before daemonizing. Fixes #285
1145
+
1146
+ ## 2.1.0 / 2013-06-18
1147
+
1148
+ * 3 minor features:
1149
+ * Allow listening socket to be configured via Capistrano variable
1150
+ * Output results from 'stat's command when using pumactl
1151
+ * Support systemd socket activation
1152
+
1153
+ * 15 bug fixes:
1154
+ * Deal with pipes closing while stopping. Fixes #270
1155
+ * Error out early if there is no app configured
1156
+ * Handle ConnectionError rather than the lowlevel exceptions
1157
+ * tune with `-C` config file and `on_worker_boot`
1158
+ * use `-w`
1159
+ * Fixed some typos in upstart scripts
1160
+ * Make sure to use bytesize instead of size (MiniSSL write)
1161
+ * Fix an error in puma-manager.conf
1162
+ * fix: stop leaking sockets on restart (affects ruby 1.9.3 or before)
1163
+ * Ignore errors on the cross-thread pipe. Fixes #246
1164
+ * Ignore errors while uncorking the socket (it might already be closed)
1165
+ * Ignore the body on a HEAD request. Fixes #278
1166
+ * Handle all engine data when possible. Fixes #251.
1167
+ * Handle all read exceptions properly. Fixes #252
1168
+ * Handle errors from the server better
1169
+
1170
+ * 3 doc changes:
1171
+ * Add note about on_worker_boot hook
1172
+ * Add some documentation for Clustered mode
1173
+ * Added quotes to /etc/puma.conf
1174
+
1175
+ ## 2.0.1 / 2013-04-30
1176
+
1177
+ * 1 bug fix:
1178
+
1179
+ * Fix not starting on JRuby properly
1180
+
1181
+ ## 2.0.0 / 2013-04-29
1182
+
1183
+ RailsConf 2013 edition!
1184
+
1185
+ * 2 doc changes:
1186
+ * Start with rackup -s Puma, NOT rackup -s puma.
1187
+ * Minor doc fixes in the README.md, Capistrano section
1188
+
1189
+ * 2 bug fixes:
1190
+ * Fix reading RACK_ENV properly. Fixes #234
1191
+ * Make cap recipe handle tmp/sockets; fixes #228
1192
+
1193
+ * 3 minor changes:
1194
+ * Fix capistrano recipe
1195
+ * Fix stdout/stderr logs to sync outputs
1196
+ * allow binding to IPv6 addresses
1197
+
1198
+ ## 2.0.0.b7 / 2013-03-18
1199
+
1200
+ * 5 minor enhancements:
1201
+
1202
+ * Add -q option for :start
1203
+ * Add -V, --version
1204
+ * Add default Rack handler helper
1205
+ * Upstart support
1206
+ * Set worker directory from configuration file
1207
+
1208
+ * 12 bug fixes:
1209
+
1210
+ * Close the binder in the right place. Fixes #192
1211
+ * Handle early term in workers. Fixes #206
1212
+ * Make sure that the default port is 80 when the request doesn't include HTTP_X_FORWARDED_PROTO.
1213
+ * Prevent Errno::EBADF errors on restart when running ruby 2.0
1214
+ * Record the proper @master_pid
1215
+ * Respect the header HTTP_X_FORWARDED_PROTO when the host doesn't include a port number.
1216
+ * Retry EAGAIN/EWOULDBLOCK during syswrite
1217
+ * Run exec properly to restart. Fixes #154
1218
+ * Set Rack run_once to false
1219
+ * Syncronize all access to @timeouts. Fixes #208
1220
+ * Write out the state post-daemonize. Fixes #189
1221
+ * Prevent crash when all workers are gone
1222
+
1223
+ ## 2.0.0.b6 / 2013-02-06
1224
+
1225
+ * 2 minor enhancements:
1226
+
1227
+ * Add hook for running when a worker boots
1228
+ * Advertise the Configuration object for apps to use.
1229
+
1230
+ * 1 bug fix:
1231
+
1232
+ * Change directory in working during upgrade. Fixes #185
1233
+
1234
+ ## 2.0.0.b5 / 2013-02-05
1235
+
1236
+ * 2 major features:
1237
+ * Add phased worker upgrade
1238
+ * Add support for the rack hijack protocol
1239
+
1240
+ * 2 minor features:
1241
+ * Add -R to specify the restart command
1242
+ * Add config file option to specify the restart command
1243
+
1244
+ * 5 bug fixes:
1245
+ * Cleanup pipes properly. Fixes #182
1246
+ * Daemonize earlier so that we don't lose app threads. Fixes #183
1247
+ * Drain the notification pipe. Fixes #176, thanks @cryo28
1248
+ * Move write_pid to after we daemonize. Fixes #180
1249
+ * Redirect IO properly and emit message for checkpointing
1250
+
1251
+ ## 2.0.0.b4 / 2012-12-12
1252
+
1253
+ * 4 bug fixes:
1254
+ * Properly check #syswrite's value for variable sized buffers. Fixes #170
1255
+ * Shutdown status server properly
1256
+ * Handle char vs byte and mixing syswrite with write properly
1257
+ * made MiniSSL validate key/cert file existence
1258
+
1259
+ ## 2.0.0.b3 / 2012-11-22
1260
+
1261
+ * 1 bug fix:
1262
+ * Package right files in gem
1263
+
1264
+ ## 2.0.0.b2 / 2012-11-18
1265
+ * 5 minor feature:
1266
+ * Now Puma is bundled with an capistrano recipe. Just require
1267
+ 'puma/capistrano' in you deploy.rb
1268
+ * Only inject CommonLogger in development mode
1269
+ * Add -p option to pumactl
1270
+ * Add ability to use pumactl to start a server
1271
+ * Add options to daemonize puma
1272
+
1273
+ * 7 bug fixes:
1274
+ * Reset the IOBuffer properly. Fixes #148
1275
+ * Shutdown gracefully on JRuby with Ctrl-C
1276
+ * Various methods to get newrelic to start. Fixes #128
1277
+ * fixing syntax error at capistrano recipe
1278
+ * Force ECONNRESET when read returns nil
1279
+ * Be sure to empty the drain the todo before shutting down. Fixes #155
1280
+ * allow for alternate locations for status app
1281
+
1282
+ ## 2.0.0.b1 / 2012-09-11
1283
+
1284
+ * 1 major feature:
1285
+ * Optional worker process mode (-w) to allow for process scaling in
1286
+ addition to thread scaling
1287
+
1288
+ * 1 bug fix:
1289
+ * Introduce Puma::MiniSSL to be able to properly control doing
1290
+ nonblocking SSL
1291
+
1292
+ NOTE: SSL support in JRuby is not supported at present. Support will
1293
+ be added back in a future date when a java Puma::MiniSSL is added.
1294
+
1295
+ ## 1.6.3 / 2012-09-04
1296
+
1297
+ * 1 bug fix:
1298
+ * Close sockets waiting in the reactor when a hot restart is performed
1299
+ so that browsers reconnect on the next request
1300
+
1301
+ ## 1.6.2 / 2012-08-27
1302
+
1303
+ * 1 bug fix:
1304
+ * Rescue StandardError instead of IOError to handle SystemCallErrors
1305
+ as well as other application exceptions inside the reactor.
1306
+
1307
+ ## 1.6.1 / 2012-07-23
1308
+
1309
+ * 1 packaging bug fixed:
1310
+ * Include missing files
1311
+
1312
+ ## 1.6.0 / 2012-07-23
1313
+
1314
+ * 1 major bug fix:
1315
+ * Prevent slow clients from starving the server by introducing a
1316
+ dedicated IO reactor thread. Credit for reporting goes to @meh.
1317
+
1318
+ ## 1.5.0 / 2012-07-19
1319
+
1320
+ * 7 contributors to this release:
1321
+ * Christian Mayer
1322
+ * Darío Javier Cravero
1323
+ * Dirkjan Bussink
1324
+ * Gianluca Padovani
1325
+ * Santiago Pastorino
1326
+ * Thibault Jouan
1327
+ * tomykaira
1328
+
1329
+ * 6 bug fixes:
1330
+ * Define RSTRING_NOT_MODIFIED for Rubinius
1331
+ * Convert status to integer. Fixes #123
1332
+ * Delete pidfile when stopping the server
1333
+ * Allow compilation with -Werror=format-security option
1334
+ * Fix wrong HTTP version for a HTTP/1.0 request
1335
+ * Use String#bytesize instead of String#length
1336
+
1337
+ * 3 minor features:
1338
+ * Added support for setting RACK_ENV via the CLI, config file, and rack app
1339
+ * Allow Server#run to run sync. Fixes #111
1340
+ * Puma can now run on windows
1341
+
1342
+ ## 1.4.0 / 2012-06-04
1343
+
1344
+ * 1 bug fix:
1345
+ * SCRIPT_NAME should be passed from env to allow mounting apps
1346
+
1347
+ * 1 experimental feature:
1348
+ * Add puma.socket key for direct socket access
1349
+
1350
+ ## 1.3.1 / 2012-05-15
1351
+
1352
+ * 2 bug fixes:
1353
+ * use #bytesize instead of #length for Content-Length header
1354
+ * Use StringIO properly. Fixes #98
1355
+
1356
+ ## 1.3.0 / 2012-05-08
1357
+
1358
+ * 2 minor features:
1359
+ * Return valid Rack responses (passes Lint) from status server
1360
+ * Add -I option to specify $LOAD_PATH directories
1361
+
1362
+ * 4 bug fixes:
1363
+ * Don't join the server thread inside the signal handle. Fixes #94
1364
+ * Make NullIO#read mimic IO#read
1365
+ * Only stop the status server if it's started. Fixes #84
1366
+ * Set RACK_ENV early in cli also. Fixes #78
1367
+
1368
+ * 1 new contributor:
1369
+ * Jesse Cooke
1370
+
1371
+ ## 1.2.2 / 2012-04-28
1372
+
1373
+ * 4 bug fixes:
1374
+
1375
+ * Report a lowlevel error to stderr
1376
+ * Set a fallback SERVER_NAME and SERVER_PORT
1377
+ * Keep the encoding of the body correct. Fixes #79
1378
+ * show error.to_s along with backtrace for low-level error
1379
+
1380
+ ## 1.2.1 / 2012-04-11
1381
+
1382
+ 1 bug fix:
1383
+
1384
+ * Fix rack.url_scheme for SSL servers. Fixes #65
1385
+
1386
+ ## 1.2.0 / 2012-04-11
1387
+
1388
+ 1 major feature:
1389
+
1390
+ * When possible, the internal restart does a "hot restart" meaning
1391
+ the server sockets remains open, so no connections are lost.
1392
+
1393
+ 1 minor feature:
1394
+
1395
+ * More helpful fallback error message
1396
+
1397
+ 6 bug fixes:
1398
+
1399
+ * Pass the proper args to unknown_error. Fixes #54, #58
1400
+ * Stop the control server before restarting. Fixes #61
1401
+ * Fix reporting https only on a true SSL connection
1402
+ * Set the default content type to 'text/plain'. Fixes #63
1403
+ * Use REUSEADDR. Fixes #60
1404
+ * Shutdown gracefully on SIGTERM. Fixes #53
1405
+
1406
+ 2 new contributors:
1407
+
1408
+ * Seamus Abshere
1409
+ * Steve Richert
1410
+
1411
+ ## 1.1.1 / 2012-03-30
1412
+
1413
+ 1 bugfix:
1414
+
1415
+ * Include puma/compat.rb in the gem (oops!)
1416
+
1417
+ ## 1.1.0 / 2012-03-30
1418
+
1419
+ 1 bugfix:
1420
+
1421
+ * Make sure that the unix socket has the perms 0777 by default
1422
+
1423
+ 1 minor feature:
1424
+
1425
+ * Add umask param to the unix:// bind to set the umask
1426
+
1427
+ ## 1.0.0 / 2012-03-29
1428
+
1429
+ * Released!