Puma: v6.0.0 Release

Release date:
January 8, 2024
Previous version:
v5.6.8 (released January 8, 2024)
Magnitude:
1,295 Diff Delta
Contributors:
9 total committers
Data confidence:
Commits:

Top Contributors in v6.0.0

nateberkopec
stanhu
MSP-Greg
JoeDupuis
kares
BlakeWilliams
kzkn
khustochka
epsilon-0

Directory Browser for v6.0.0

All files are compared to previous version, v5.6.8. Click here to browse diffs between other versions.

Loading File Browser...

Release Notes Published

6.0.0 Sunflower

Image by Todd Trapani, Unsplash

  • Breaking Changes

    • Dropping Ruby 2.2 and 2.3 support (now 2.4+) ([#2919])
    • Remote_addr functionality has changed ([#2652], [#2653])
    • No longer supporting Java 1.7 or below (JRuby 9.1 was the last release to support this) ([#2849])
    • Remove nakayoshi GC ([#2933], [#2925])
    • wait_for_less_busy_worker is now default on ([#2940])
    • Prefix all environment variables with PUMA_ ([#2924], [#2853])
    • Removed some constants ([#2957], [#2958], [#2959], [#2960])
    • The following classes are now part of Puma's private API: Client, Cluster::Worker, Cluster::Worker, HandleRequest. ([#2988])
    • Configuration constants like DefaultRackup removed ([#2928])
    • Extracted LogWriter from Events ([#2798])
  • Features

    • Increase throughput on large (100kb+) response bodies by 3-10x ([#2896], [#2892])
    • Increase throughput on file responses ([#2923])
    • Add support for streaming bodies in Rack. ([#2740])
    • Allow OpenSSL session reuse via a 'reuse' ssl_bind method or bind string query parameter ([#2845])
    • Allow run_hooks to pass a hash to blocks for use later ([#2917], [#2915])
    • Allow using preload_app! with fork_worker ([#2907])
    • Support request_body_wait metric with higher precision ([#2953])
    • Allow header values to be arrays (Rack 3) ([#2936], [#2931])
    • Export Puma/Ruby versions in /stats ([#2875])
    • Allow configuring request uri max length & request path max length ([#2840])
    • Add a couple of public accessors ([#2774])
    • Log entire backtrace when worker start fails ([#2891])
    • [jruby] Enable TLSv1.3 support ([#2886])
    • [jruby] support setting TLS protocols + rename ssl_cipher_list ([#2899])
    • [jruby] Support a truststore option ([#2849], [#2904], [#2884])
  • Bugfixes

    • Load the configuration before passing it to the binder ([#2897])
    • Do not raise error raised on HTTP methods we don't recognize or support, like CONNECT ([#2932], [#1441])
    • Fixed a memory leak when creating a new SSL listener ([#2956])
  • Refactor

    • log_writer.rb - add internal_write method ([#2888])
    • Extract prune_bundler code into it's own class. ([#2797])
    • Refactor Launcher#run to increase readability (no logic change) ([#2795])
    • Ruby 3.2 will have native IO#wait_* methods, don't require io/wait ([#2903])
    • Various internal API refactorings ([#2942], [#2921], [#2922], [#2955])