Skip to content

6.5.0 - Sky's Version

Compare
Choose a tag to compare
@nateberkopec nateberkopec released this 22 Nov 23:54
· 60 commits to master since this release

They say good things come to wait, and you've all had to wait a long time for 6.5.0 because @nateberkopec had another daughter: Sky!

  • Features

    • Print RUBY_DESCRIPTION when Puma starts ([#3407])
    • Set the worker process count automatically when using WEB_CONCURRENCY=auto ([#3439], [#3437])
    • Mark as ractor-safe ([#3486], [#3422])
    • Add option enable_keep_alives. true (the default) mimics existing behavior, but now you can use false to disable keepalive to reduce queue tail latency ([#3496])
    • Add parameters to Puma methods to allow CI to change ENV in isolation ([#3485])
    • Add ssl_ciphersuites option for TLSv1.3 ciphers ([#3359], [#3343])
    • You can now use --threads 5 or threads 5 to config max/min threads with a single number (used to need to say 5:5) ([#3309])
    • Option to turn off systemd plugin ([#3425], [#3424])
    • Add on_stopped hook ([#3411], [#3380])
  • Bugfixes

    • Handle blank environment variables when loading config ([#3539])
    • lib/rack/handler/puma.rb - fix for rackup v1.0.1, adjust Gemfile ([#3532], [#3531])
    • null_io.rb - add external_encoding, set_encoding, binmode, binmode? ([#3214])
    • Implement NullIO#seek and #pos to mimic IO ([#3468])
    • add support in rack handler & fix regression in binder for linux abstract namespace sockets ([#3508])
    • Use actual thread local for Puma::Server.current. ([#3360])
    • client.rb - fix request chunked body handling ([#3338], [#3337])
    • Properly handle two requests seen in the initial buffer ([#3332])
    • Fix response repeated status line when request is invalid or errors are raised ([#3308], [#3307])
    • Fix child processes not being reaped when Process.detach used ([#3314], [#3313])
  • JRuby

    • Make HTTP length constants configurable ([#3518])
    • Fixup jruby_restart.rb & launcher.rb to work with ARM64 macOS JRuby ([#3467])
  • Performance

    • Avoid checking if all workers reached timeout unless idle timeout is configured ([#3341])
    • Request body - increase read size to 64 kB ([#3548])
    • single mode skip wait_for_less_busy_worker ([#3325])
  • Refactor

    • A ton of CI/test improvements by @MSP-Greg, as usual.
    • Add ThreadPool#stats and adjust Server#stats to use it ([#3527])
    • normalize whitespace in worker stats string ([#3513])
    • rack/handler/puma.rb - ssl - use start_with?, add test ([#3510])
    • extconf.rb - add logging for OpenSSL versions ([#3370])
    • Lazily require Puma::Rack::Builder ([#3340])
    • Refactor: Constantize worker pipe request types ([#3318])
  • Docs

    • stats.md improvements ([#3514])
    • control_cli.rb: Harmonize help message with bin/puma ([#3434])
    • dsl.rb: Clarify a callback's argument ([#3435])
    • lib/rack/handler/puma.rb - relocate and fixup module comment ([#3495])