A summary of data about the Ruby ecosystem.

Recent Releases of https://github.com/puma/puma

https://github.com/puma/puma - v7.2.0

7.2.0 On The Corner

  • Features

    • Add workers :auto ([#3827])
    • Make it possible to restrict control server commands to stats ([#3787])
  • Bugfixes

    • Don't break if WEB_CONCURRENCY is set to a blank string ([#3837])
    • Don't share server between worker 0 and descendants on refork ([#3602])
    • Fix phase check race condition in Puma::Cluster#check_workers ([#3690])
    • Fix advertising of CLI config before config files are loaded ([#3823])
  • Performance

    • 17% faster HTTP parsing through pre-interning env keys ([#3825])
    • Implement dsize and dcompact functions for Puma::HttpParser, which makes Puma's C-extension GC-compactible ([#3828])
  • Refactor

    • Remove NoMethodError rescue in Reactor#select_loop ([#3831])
    • Various cleanups in the C extension ([#3814])
    • Monomorphize handle_request return ([#3802])
  • Docs

    • Change link to docs/deployment.md in README.md ([#3848])
    • Fix formatting for each signal description in signals.md ([#3813])
    • Update deployment and Kubernetes docs with Puma configuration tips ([#3807])
    • Rename master to main ([#3809], [#3808], [#3800])
    • Fix some minor typos in the docs ([#3804])
    • Add GOVERNANCE.md, MAINTAINERS ([#3826])
    • Remove Code Climate badge ([#3820])
    • Add @joshuay03 to the maintainer list
  • CI

    • Use Minitest 6 where applicable ([#3859])
    • Many test suite improvements and flake fixes ([#3861], [#3863], [#3860], [#3852], [#3857], [#3856], [#3845], [#3843], [#3842], [#3841], [#3822], [#3817], [#3764])

New Contributors

Full Changelog: https://github.com/puma/puma/compare/v7.1.0...v7.2.0

- Ruby
Published by nateberkopec about 1 month ago

https://github.com/puma/puma - v7.1.0

7.1.0 / 2025-10-16 - Neon Witch

neon_witch

  • Features

    • Introduce after_worker_shutdown hook ([#3707])
    • Reintroduce keepalive "fast inline" behavior. Provides faster (8x on JRuby & 1.4x on Ruby) pipeline processing ([#3794])
  • Bugfixes

    • Skip reading zero bytes when request body is buffered ([#3795])
    • Fix PUMA_LOG_CONFIG=1 logging twice with prune_bundler enabled ([#3778])
    • Fix prune_bundler not showing in PUMA_LOG_CONFIG=1 output ([#3779])
    • Guard ThreadPool method call, which may be nil during shutdown ([#3791], [#3790])
    • Set Thread.current.puma_server in Thread init code, not every request ([#3774])
    • Fix race condition while deleting pidfile ([#3657])

New Contributors

Full Changelog: https://github.com/puma/puma/compare/v7.0.4...v7.1.0

- Ruby
Published by schneems 5 months ago

https://github.com/puma/puma -

What's Changed

New Contributors

Full Changelog: https://github.com/puma/puma/compare/v7.0.3...v7.0.4

- Ruby
Published by schneems 5 months ago

https://github.com/puma/puma - v7.0.3

7.0.3 / 2025-09-13

  • Performance

    • server.rb - process_client - add ka to todo if readable & complete ([#3748])
  • Bugfixes

    • Convert PUMA_PERSISTENT_TIMEOUT to an Integer ([#3749])

- Ruby
Published by schneems 6 months ago

https://github.com/puma/puma - v7.0.2

What's Changed

New Contributors

Full Changelog: https://github.com/puma/puma/compare/v7.0.1...v7.0.2

- Ruby
Published by schneems 6 months ago

https://github.com/puma/puma - v7.0.1

What's Changed

Full Changelog: https://github.com/puma/puma/compare/v7.0.0...v7.0.1

- Ruby
Published by schneems 6 months ago

https://github.com/puma/puma - v7.0.0 - Romantic Warrior

7.0.0

  • Breaking changes
    • Set default max_keep_alive to 999 ([#3719])
    • Increase persistent_timeout default to 65 seconds ([#3378])
    • Raise an ArgumentError if no block given to hooks ([#3377])
    • Don't set env['HTTP_VERSION'] for Rack > 3.1 ([#3711], [#3576])
    • Runner.rb - remove ruby_engine method, deprecated Nov-2024 ([#3701])
    • Set conditional config defaults after CLI options are parsed and config files are loaded ([#3297])
    • Response headers set to lowercase ([#3704])
    • Update minimum Ruby version to 3.0 ([#3698])
    • Rename callback hooks ([#3438])
Old hook name New hook name
on_worker_boot before_worker_boot
on_worker_shutdown before_worker_shutdown
on_restart before_restart
on_booted after_booted
on_stopped after_stopped
on_refork before_refork
on_thread_start before_thread_start
on_thread_exit before_thread_exit
on_worker_fork before_worker_fork
  • Features

    • Fix long tail response problem with keepalive connections ([#3678]) (Previously released in 7.0.0.pre1, this was a high effort change)
    • Introduce support for fiber-per-request. ([#3101])
    • Add support for rack.response_finished ([#3681])
    • Feature/support custom logger with request logs ([#3140])
  • Bugfixes

    • Fixes a bug where triggering hooks in the ThreadPool fails ([#3716])
    • Fix error_logger inproperly logging env[QUERY_STRING] ([#3713], [#3625])
    • Fix handling of invalid Transfer-Encoding header errors ([#3702])
    • Fix socket leak on monitor wakeup NoMethodError in Reactor#select_loop ([#3696], [#3695])
    • CI: puma_socket.rb fixup socket/request writes ([#3684])
    • Warn when RUBY_MN_THREADS env var is set ([#3721])
    • Improve the DSL preload_app! doc ([#3712])
    • Fix the ability to focus individual tests ([#3705])
    • Set env['rack.hijack'] to client.method(:full_hijack) ([#3073])
  • Performance

    • server.rb - initialize ivars @reactor and @env_set_http_version ([#3714])
  • Refactor

    • Simplify Puma::DSL#process_hook logic ([#3710])
    • Dry up deprecation warnings and fix deprecation warnings when running CI. ([#3709], [#3708])
    • Ensure and enforce that configs are loaded before options are accessed ([#3616])

- Ruby
Published by schneems 6 months ago

https://github.com/puma/puma - v7.0.0.pre1

  • Changed
    • Fix long tail response problem with keepalive connections ([#3678])

Please try this release and report issues on the tracker if you have a problem.

- Ruby
Published by schneems 7 months ago

https://github.com/puma/puma - v6.6.1

6.6.1 / 2025-07-30

  • Bugfixes
    • Accept to_path to be nil on request bodies ([#3635])
    • Fix single runner stats before the server start ([#3572])
    • Fix incomplete worker boot state on refork ([#3601])
    • Improve HttpParserError messages for better debugging ([#3586])
    • Fix refork logs to distinguish from phased restarts ([#3598])
    • Fix rack.after_reply so it doesn't interrupt chain on error ([#3680])

- Ruby
Published by schneems 7 months ago

https://github.com/puma/puma - 6.6.0 - Return to Forever

image

Some stuff for JRuby users (SIGUSR2 trap), reforkers (see below), and a few debug/logging/observability related goodies.

  • Features

    • Option to turn off SIGUSR2 trapping ([#3570], [#3567])
    • Shorten ThreadPool trimmer and reaper thread names ([#3383])
    • Add after_refork hook ([#3386])
    • Add busy threads stat ([#3517])
    • Add a debug log before running each type of hook ([#3375])
    • Allow alternative schemes in Binder ([#3348], [#3302])
    • Avoid spawning Threadpool#trim thread if pool size is fixed ([#3384])
  • Bugfixes

    • Change HttpParserError to be subclass of StandardError ([#3590], [#3552])
    • added test cases
    • fix update phased restart symlink folder
  • Performance

    • Only ping worker 0 during phased restart if using fork worker ([#3568])
  • Refactor

    • Fix multi-delimiter split to get status app token ([#3505])
    • Change ping to use const ([#3595])
    • Fixup use of Puma::Const::PipeRequest constants ([#3565])
    • Update DSL hook processing logic to be consistent ([#3376])

- Ruby
Published by nateberkopec about 1 year ago

https://github.com/puma/puma - 6.5.0 - Sky's Version

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_alive. true mimics existing behavior, but now 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])

- Ruby
Published by nateberkopec over 1 year ago

https://github.com/puma/puma - 6.4.3

  • Security
    • Discards any headers using underscores if the non-underscore version also exists. Without this, an attacker could overwrite values set by intermediate proxies (e.g. X-Forwarded-For). (CVE-2024-45614/GHSA-9hf4-67fc-4vf4)

- Ruby
Published by nateberkopec over 1 year ago

https://github.com/puma/puma - 6.4.2

  • Security
    • Limit the size of chunk extensions. Without this limit, an attacker could cause unbounded resource (CPU, network bandwidth) consumption. (GHSA-c2f4-cvqm-65w2)

- Ruby
Published by nateberkopec over 1 year ago

https://github.com/puma/puma - 6.4.1

  • Bugfixes

    • DSL#warn_if_in_single_mode - fixup when workers set via CLI ([#3256])
    • Fix idle-timeout not working in cluster mode ([#3235], [#3228], [#3282], [#3283])
    • Fix worker 0 timing out during phased restart ([#3225], [#2786])
    • context_builder.rb - require openssl if verify_mode != 'none' ([#3179])
    • Make puma cluster process suitable as PID 1 ([#3255])
    • Improve Puma::NullIO consistency with real IO ([#3276])
    • extconf.rb - fixup to detect openssl info in Ruby build ([#3271], [#3266])
    • MiniSSL.java - set serialVersionUID, fix RaiseException deprecation ([#3270])
    • dsl.rb - fix warn_if_in_single_mode when WEB_CONCURRENCY is set ([#3265], [#3264])
  • Maintenance

    • LOTS of test refactoring to make tests more stable and easier to write - thanks to @MSP-Greg!
    • Fix bug in tests re: TestPuma::HOST4 ([#3254])
    • Dockerfile for minimal repros: use Ruby 3.2, expect bundler installed ([#3245])
    • fix define_method calls, use Symbol parameter instead of String ([#3293])
  • Docs

    • README.md - add the puma-acme plugin ([#3301])
    • Remove --keep-file-descriptors flag from systemd docs ([#3248])
    • Note symlink mechanism in restart documentation for hot restart ([#3298])

- Ruby
Published by nateberkopec about 2 years ago

https://github.com/puma/puma - 6.4.0 - The Eagle of Durango

image

America is #1 in professional cycling, baby!

  • Features

    • on_thread_exit hook ([#2920])
    • on_thread_start_hook ([#3195])
    • Shutdown on idle ([#3209], [#2580])
    • New error message when control server port taken ([#3204])
  • Refactor

    • Remove Forwardable dependency ([#3191], #3190)
    • Update URLMap Regexp usage for Ruby v3.3 ([#3165])
  • Bugfixes

    • Bring the cert_pem: parameter into parity with the cert: parameter to ssl_bind. ([#3174])
    • Fix using control server with IPv6 host ([#3181])
    • control_cli.rb - add require_relative 'log_writer' ([#3187])
    • Fix cases where fallback Rack response wasn't sent to the client ([#3094])

- Ruby
Published by nateberkopec over 2 years ago

https://github.com/puma/puma - 5.6.7

Security
Address HTTP request smuggling vulnerabilities with zero-length Content Length header and trailer fields (GHSA-68xg-gqqm-vgj8)

- Ruby
Published by nateberkopec over 2 years ago

https://github.com/puma/puma - 6.3.1

  • Security
    • Address HTTP request smuggling vulnerabilities with zero-length Content Length header and trailer fields (GHSA-68xg-gqqm-vgj8)

- Ruby
Published by nateberkopec over 2 years ago

https://github.com/puma/puma - 6.3.0 - Mugi No Toki Itaru

image

Japan has 72 traditional microseasons. May 31 is the first day of 麦秋至, which means the time of the wheat/barley harvest.

  • Features

    • Add dsl method supported_http_methods ([#3106], [#3014])
    • Puma error responses no longer have any fingerprints to indicate Puma ([#3161], [#3037])
    • Support decryption of SSL key ([#3133], [#3132])
  • Bugfixes

    • Don't send 103 early hints response when only invalid headers are used ([#3163])
    • Handle malformed request path ([#3155], [#3148])
    • Misc lib file fixes - trapping additional errors, CI helper ([#3129])
    • Fixup req form data file upload with "r\n" line endings ([#3137])
    • Restore rack 1.6 compatibility ([#3156])
  • Refactor

    • const.rb - Update Puma::HTTP_STATUS_CODES ([#3162])
    • Clarify Reactor#initialize ([#3151])

New Contributors

Full Changelog: https://github.com/puma/puma/compare/v6.2.2...v6.3.0

- Ruby
Published by nateberkopec almost 3 years ago

https://github.com/puma/puma - 6.2.2

  • Bugfixes
    • Fix Rack-related NameError by adding :: operator ([#3118], [#3117])

- Ruby
Published by nateberkopec almost 3 years ago

https://github.com/puma/puma - 6.2.1

6.2.1 / 2023-03-31

  • Bugfixes
    • Fix java 8 compatibility ([#3109], [#3108])
    • Always write io_buffer when in "enum bodies" branch. ([#3113], [#3112])
    • Fix warn_if_in_single_mode incorrect message ([#3111])

- Ruby
Published by nateberkopec almost 3 years ago

https://github.com/puma/puma - 6.2 - Speaking of Now

image

Pat Metheny Group - Speaking of Now

  • Features

    • Ability to supply a custom logger ([#2770], [#2511])
    • Warn when clustered-only hooks are defined in single mode ([#3089])
    • Adds the on_booted event ([#2709])
  • Bugfixes

    • Loggers - internal_write - catch Errno::EINVAL ([#3091])
    • commonlogger.rb - fix HIJACK time format, use constants, not strings ([#3074])
    • Fixed some edge cases regarding request hijacking ([#3072])

- Ruby
Published by nateberkopec almost 3 years ago

https://github.com/puma/puma - 6.1.1

  • Bugfixes
    • We no longer try to use the systemd plugin for JRuby ([#3079])
    • Allow ::Rack::Handler::Puma.run to work regardless of whether Rack/Rackup are loaded ([#3080])

- Ruby
Published by nateberkopec about 3 years ago

https://github.com/puma/puma - 6.1.0 The Way Up

Pmg_-_way_up

  • Features

    • WebSocket support via partial hijack ([#3058], [#3007])
    • Add built-in systemd notify support ([#3011])
    • Periodically send status to systemd ([#3006], [#2604])
    • Introduce the ability to return 413: payload too large for requests ([#3040])
    • Log loaded extensions when PUMA_DEBUG is set ([#3036], [#3020])
  • Bugfixes

    • Fix issue with rack 3 compatibility re: rackup ([#3061], [#3057])
    • Allow setting TCP low_latency with SSL listener ([#3065])
  • Performance

    • Reduce memory usage for large file uploads ([#3062])

- Ruby
Published by nateberkopec about 3 years ago

https://github.com/puma/puma - 6.0.2

6.0.2 / 2023-01-01

  • Refactor
    • Remove use of etc and time gems in Puma ([#3035], [#3033])
    • Refactor const.rb - freeze ([#3016])

- Ruby
Published by nateberkopec about 3 years ago

https://github.com/puma/puma - 6.0.1

6.0.1 / 2022-12-20

  • Bugfixes
    • Handle waking up a closed selector in Reactor#add ([#3005])
    • Fixup response processing, enumerable bodies ([#3004], [#3000])
    • Correctly close app body for all code paths ([#3002], [#2999])
  • Refactor
    • Add IOBuffer to Client, remove from ThreadPool thread instances ([#3013])

Full Changelog: https://github.com/puma/puma/compare/v6.0.0...v6.0.1

- Ruby
Published by dentarg about 3 years ago

https://github.com/puma/puma - 6.0.0

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])

- Ruby
Published by nateberkopec over 3 years ago

https://github.com/puma/puma - 5.6.5

5.6.5 / 2022-08-23

  • Bugfixes
    • NullIO#closed should return false ([#2883])
    • Puma::ControlCLI - allow refork command to be sent as a request ([#2868], [#2866])
    • [jruby] Fix TLS verification hang ([#2890], [#2729])
    • extconf.rb - don't use pkg_config('openssl') if '--with-openssl-dir' is used ([#2885], [#2839])
    • MiniSSL - detect SSL_CTX_set_dh_auto ([#2864], [#2863])
    • Fix rack.after_reply exceptions breaking connections ([#2861], [#2856])
    • Escape SSL cert and filenames ([#2855])
    • Fail hard if SSL certs or keys are invalid ([#2848])
    • Fail hard if SSL certs or keys cannot be read by user ([#2847])
    • Fix build with Opaque DH in LibreSSL 3.5. ([#2838])
    • Pre-existing socket file removed when TERM is issued after USR2 (if puma is running in cluster mode) ([#2817])
    • Fix Puma::StateFile#load incompatibility ([#2810])

- Ruby
Published by nateberkopec over 3 years ago

https://github.com/puma/puma - 4.3.12

Security

  • Close several HTTP Request Smuggling exploits (CVE-2022-24790)

- Ruby
Published by nateberkopec almost 4 years ago

https://github.com/puma/puma - 5.6.4

  • Security
    • Close several HTTP Request Smuggling exploits (CVE-2022-24790)

The 5.6.3 release was a mistake (released the wrong branch), 5.6.4 is correct.

- Ruby
Published by nateberkopec almost 4 years ago

https://github.com/puma/puma - 5.6.2

5.6.2 / 2022-02-11

  • Bugfix/Security
    • Response body will always be closed. (GHSA-rmj8-8hhh-gv5h, related to [#2809])

- Ruby
Published by nateberkopec about 4 years ago

https://github.com/puma/puma - 4.3.11

  • Bugfix/Security
    • Response body will always be closed. (GHSA-rmj8-8hhh-gv5h, related to [#2809])

- Ruby
Published by nateberkopec about 4 years ago

https://github.com/puma/puma - 5.6.1

Bugfixes

  • Reverted a commit which appeared to be causing occasional blank header values (see issue #2808) (#2809)

Full Changelog: https://github.com/puma/puma/compare/v5.6.0...v5.6.1

- Ruby
Published by dentarg about 4 years ago

https://github.com/puma/puma - 5.6.0 - Birdie's Version

Maintainer @nateberkopec had a daughter, nicknamed Birdie:

slack-imgs

5.6.0 / 2022-01-25

  • Features

    • Support localhost integration in ssl_bind ([#2764], [#2708])
    • Allow backlog parameter to be set with ssl_bind DSL ([#2780])
    • Remove yaml (psych) requirement in StateFile ([#2784])
    • Allow culling of oldest workers, previously was only youngest ([#2773], [#2794])
    • Add worker_check_interval configuration option ([#2759])
    • Always send lowlevel_error response to client ([#2731], [#2341])
    • Support for cert_pem and key_pem with ssl_bind DSL ([#2728])
  • Bugfixes

    • Keep thread names under 15 characters, prevents breakage on some OSes ([#2733])
    • Fix two 'old-style-definition' compile warning ([#2807], [#2806])
    • Log environment correctly using option value ([#2799])
    • Fix warning from Ruby master (will be 3.2.0) ([#2785])
    • extconf.rb - fix openssl with old Windows builds ([#2757])
    • server.rb - rescue handling (Errno::EBADF) for @notify.close ([#2745])
  • Refactor

    • server.rb - refactor code using @options[:remote_address] ([#2742])
    • [jruby] a couple refactorings - avoid copy-ing bytes ([#2730])

- Ruby
Published by nateberkopec about 4 years ago

https://github.com/puma/puma - 5.5.2

Re-allows UTF-8 in HTTP header values

- Ruby
Published by nateberkopec over 4 years ago

https://github.com/puma/puma - 4.3.10

Re-allows UTF-8 in HTTP header values

- Ruby
Published by nateberkopec over 4 years ago

https://github.com/puma/puma - 5.5.0 - Zawgyi

5.5.0 / 2021-09-19

14871224

Zawgyi (Burmese: ဇော်ဂျီ) is a semi-immortal human alchemist and mystic with supernatural powers and often seen with a magic stick and a red hat. Zawgyi is one of the supernatural figures in Burmese mythology and folklore. Name chosen by new (Myanma!) contributor @ye-lin-aung.

The headline feature of this release is a new integration with the localhost gem. Localhost takes care of creating a self-signed SSL certificate for you in development. Require it in your config.ru:

# Sinatra
require './app'
require 'localhost/authority'
run Sinatra::Application

# Rails 
require 'localhost/authority' if Rails.env.development?
run MyRailsApp::Application

... and in the development environment, Puma will use a self-signed SSL cert generated by Localhost if no other cert is provided.
Note: Make sure you set up Puma to run on an SSL socket: puma -b 'ssl://localhost:9292' config.ru

  • Features

    • Automatic SSL certificate provisioning for localhost, via localhost gem ([#2610], [#2257])
    • add support for the PROXY protocol (v1 only) ([#2654], [#2651])
    • Add a semantic CLI option for no config file ([#2689])
  • Bugfixes

    • More elaborate exception handling - lets some dead pumas die. ([#2700], [#2699])
    • allow multiple after_worker_fork hooks ([#2690])
    • Preserve BUNDLE_APP_CONFIG on worker fork ([#2688], [#2687])
  • Performance

    • Fix performance of server-side SSL connection close. ([#2675])

- Ruby
Published by nateberkopec over 4 years ago

https://github.com/puma/puma - 5.4.0 - Super Flight

CasiopeaSuperFlightalbumcover

  • Features

    • Better/expanded names for threadpool threads ([#2657])
    • Allow pkg_config for OpenSSL ([#2648], [#1412])
    • Add rack_url_scheme to Puma::DSL, allows setting of rack.url_scheme header ([#2586], [#2569])
  • Bugfixes

    • Binder#parse - allow for symlinked unix path, add create_activated_fds debug ENV ([#2643], [#2638])
    • Fix deprecation warning: minissl.c - Use Random.bytes if available ([#2642])
    • Client certificates: set session id context while creating SSLContext ([#2633])
  • Refactor

    • Replace IO.select with IO#wait_* when checking a single IO ([#2666])

- Ruby
Published by nateberkopec over 4 years ago

https://github.com/puma/puma - 5.3.2

  • Bugfixes
    • Gracefully handle Rack not accepting CLI options (#2630, #2626)
    • Fix sigterm misbehavior (#2629)
    • Improvements to keepalive-connection shedding (#2628)

This version was released 2021-05-21.

- Ruby
Published by dentarg over 4 years ago

https://github.com/puma/puma -

  • Security
    • Close keepalive connections after the maximum number of fast inlined requests (#2625)

- Ruby
Published by nateberkopec almost 5 years ago

https://github.com/puma/puma - 5.3.1

  • Security
    • Close keepalive connections after the maximum number of fast inlined requests (#2625)

- Ruby
Published by nateberkopec almost 5 years ago

https://github.com/puma/puma - 5.3.0 - Sweetnighter

5.3.0 / 2021-05-07

Contributor @MSP-Greg codenamed this release "Sweetnighter".

  • Features

    • Add support for Linux's abstract sockets ([#2564], [#2526])
    • Add debug to worker timeout and startup ([#2559], [#2528])
    • Print warning when running one-worker cluster ([#2565], [#2534])
    • Don't close systemd activated socket on pumactl restart ([#2563], [#2504])
  • Bugfixes

    • systemd - fix event firing ([#2591], [#2572])
    • Immediately unlink temporary files ([#2613])
    • Improve parsing of HTTP_HOST header ([#2605], [#2584])
    • Handle fatal error that has no backtrace ([#2607], [#2552])
    • Fix timing out requests too early ([#2606], [#2574])
    • Handle segfault in Ruby 2.6.6 on thread-locals ([#2567], [#2566])
    • Server#closed_socket? - parameter may be a MiniSSL::Socket ([#2596])
    • Define UNPACK_TCP_STATE_FROM_TCP_INFO in the right place ([#2588], [#2556])
    • request.rb - fix chunked assembly for ascii incompatible encodings, add test ([#2585], [#2583])
  • Performance

    • Reset peerip only if remote_addr_header is set ([#2609])
    • Reduce puma_parser struct size ([#2590])
  • Refactor

    • Refactor drain on shutdown ([#2600])
    • Micro optimisations in wait_for_less_busy_worker feature ([#2579])
    • Lots of test fixes

- Ruby
Published by nateberkopec almost 5 years ago

https://github.com/puma/puma - 5.2.2

  • Bugfixes
    • Add #flush and #sync methods to Puma::NullIO ([#2553])
    • Restore sync=true on STDOUT and STDERR streams ([#2557])

- Ruby
Published by nateberkopec almost 5 years ago

https://github.com/puma/puma - 5.2.1

2021-02-05

  • Bugfixes
    • Fix TCP cork/uncork operations to work with ssl clients ([#2550])
    • Require rack/common_logger explicitly if :verbose is true ([#2547])
    • MiniSSL::Socket#write - use data.byteslice(wrote..-1) ([#2543])
    • Set @env[CONTENT_LENGTH] value as string. ([#2549])

- Ruby
Published by nateberkopec about 5 years ago

https://github.com/puma/puma - 5.2.0

  • Features

    • 10x latency improvement for MRI on ssl connections by reducing overhead ([#2519])
    • Add option to specify the desired IO selector backend for libev ([#2522])
    • Add ability to set OpenSSL verification flags (MRI only) ([#2490])
    • Uses flush after writing messages to avoid mutating $stdout and $stderr using sync=true ([#2486])
  • Bugfixes

    • MiniSSL - Update dhparam to 2048 bit for use with SSL_CTX_set_tmp_dh ([#2535])
    • Change 'Goodbye!' message to be output after listeners are closed ([#2529])
    • Fix ssl bind logging with 0.0.0.0 and localhost ([#2533])
    • Fix compiler warnings, but skipped warnings related to ragel state machine generated code ([#1953])
    • Fix phased restart errors related to nio4r gem when using the Puma control server ([#2516])
    • Add #string method to Puma::NullIO ([#2520])
    • Fix binding via Rack handler to IPv6 addresses ([#2521])
  • Refactor

    • Refactor MiniSSL::Context on MRI, fix MiniSSL::Socket#write ([#2519])
    • Remove Server#read_body ([#2531])
    • Fail build if compiling extensions raises warnings on GH Actions, configurable via MAKE_WARNINGS_INTO_ERRORS ([#1953])

- Ruby
Published by nateberkopec about 5 years ago

https://github.com/puma/puma - 5.1.1

  • Bugfixes
    • Fix over eager matching against banned header names ([#2510])

- Ruby
Published by nateberkopec about 5 years ago

https://github.com/puma/puma - 5.1.0

5.1.0 / 2020-11-30

  • Features

    • Phased restart availability is now always logged, even if it is not available.
    • Prints the loaded configuration if the environment variable PUMA_LOG_CONFIG is present ([#2472])
    • Integrate with systemd's watchdog and notification features ([#2438])
    • Adds max_fast_inline as a configuration option for the Server object ([#2406])
    • You can now fork workers from worker 0 using SIGURG w/o fork_worker enabled [#2449]
    • Add option to bind to systemd activated sockets ([#2362])
    • Add compile option to change the QUERY_STRING max length ([#2485])
  • Bugfixes

    • Fix JRuby handling in Puma::DSL#ssl_bind ([#2489])
    • control_cli.rb - all normal output should be to @stdout ([#2487])
    • Catch 'Error in reactor loop escaped: mode not supported for this object: r' ([#2477])
    • Ignore Rails' reaper thread (and any thread marked forksafe) for warning ([#2475])
    • Ignore illegal (by Rack spec) response header ([#2439])
    • Close idle connections immediately on shutdown ([#2460])
    • Fix some instances of phased restart errors related to the json gem ([#2473])
    • Remove use of json gem to fix phased restart errors ([#2479])
    • Fix grouping regexp of ILLEGAL_HEADER_KEY_REGEX ([#2495])

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - 5.0.4

  • Bugfixes
    • Pass preloaded application into new workers if available when using preload_app (#2461

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - 5.0.3

A release with a bunch of bugfixes and stability improvements.

  • Bugfixes

    • Add Client#io_ok?, check before Reactor#register (#2432)
    • Fix hang on shutdown in refork (#2442)
    • Fix Bundler::GemNotFound errors for nio4r gem during phased restarts (#2427, #2018)
    • Server run thread safety fix (#2435)
    • Fire on_booted after server starts (#2431, #2212)
    • Cleanup daemonization in rc.d script (#2409)
  • Refactor

    • Remove accept_nonblock.rb, add test_integration_ssl.rb (#2448)
    • Refactor status.rb - dry it up a bit (#2450)
    • Extract req/resp methods to new request.rb from server.rb (#2419)
    • Refactor Reactor and Client request buffering (#2279)
    • client.rb - remove JRuby specific 'finish' code (#2412)
    • Consolidate fast_write calls in Server, extract early_hints assembly (#2405)
    • Remove upstart from docs (#2408)
    • Consolidate option handling in Server, Server small refactors, doc changes (#2389)

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - 5.0.2

Bugfix: Reverted API changes to Server.

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - 5.0.1

This release fixed a critical error for CentOS users, and quieted some unnecessary error logging for Heroku users.

  • Bugfixes

    • Fix LoadError in CentOS 8 ([#2381])
    • Better error handling during force shutdown ([#2271])
    • Prevent connections from entering Reactor after shutdown begins ([#2377])
    • Fix error backtrace debug logging && Do not log request dump if it is not parsed ([#2376])
    • Split TCP_CORK and TCP_INFO ([#2372])
    • Do not log EOFError when a client connection is closed without write ([#2384])
  • Refactor

    • Change Events#ssl_error signature from (error, peeraddr, peercert) to (error, ssl_socket) ([#2375])
    • Consolidate option handling in Server, Server small refactors, doc chang ([#2373])

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - 5.0 - Spoony Bard

5.0.0

Spoony_Bard

  • Features

    • Allow compiling without OpenSSL and dynamically load files needed for SSL, add 'no ssl' CI (#2305)
    • EXPERIMENTAL: Add fork_worker option and refork command for reduced memory usage by forking from a worker process instead of the master process. (#2099)
    • 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).
    • EXPERIMENTAL: Added nakayoshi_fork option. Reduce memory usage in preloaded cluster-mode apps by GCing before fork and compacting, where available. (#2093, #2256)
    • Added pumactl thread-backtraces command to print thread backtraces (#2054)
    • Added incrementing requests_count to Puma.stats. (#2106)
    • Increased maximum URI path length from 2048 to 8192 bytes (#2167, #2344)
    • 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)
    • Faster phased restart and worker timeout (#2220)
    • Added state_permission to config DSL to set state file permissions (#2238)
    • Added Puma.stats_hash, which returns a stats in Hash instead of a JSON string (#2086, #2253)
    • rack.multithread and rack.multiprocess now dynamically resolved by max_thread and workers respectively (#2288)
  • Deprecations, Removals and Breaking API Changes

    • --control has been removed. Use --control-url (#1487)
    • worker_directory has been removed. Use directory.
    • min_threads now set by environment variables PUMA_MIN_THREADS and MIN_THREADS. (#2143)
    • max_threads now set by environment variables PUMA_MAX_THREADS and MAX_THREADS. (#2143)
    • max_threads default to 5 in MRI or 16 for all other interpreters. (#2143)
    • preload by default if workers > 1 (#2143)
    • Puma::Plugin.workers_supported? has been removed. Use Puma.forkable? instead. (#2143)
    • tcp_mode has been removed without replacement. (#2169)
    • Daemonization has been removed without replacement. (#2170)
    • Changed #connected_port to #connected_ports (#2076)
    • Configuration: environment is read from RAILS_ENV, if RACK_ENV can't be found (#2022)
    • Log binding on http:// for TCP bindings to make it clickable
  • Bugfixes

    • Fix JSON loading issues on phased-restarts (#2269)
    • Improve shutdown reliability (#2312, #2338)
    • Close client http connections made to an ssl server with TLSv1.3 (#2116)
    • Do not set user_config to quiet by default to allow for file config (#2074)
    • Always close SSL connection in Puma::ControlCLI (#2211)
    • Windows update extconf.rb for use with ssp and varied Ruby/MSYS2 combinations (#2069)
    • Ensure control server Unix socket is closed on shutdown (#2112)
    • Preserve BUNDLE_GEMFILE env var when using prune_bundler (#1893)
    • Send 408 request timeout even when queue requests is disabled (#2119)
    • Rescue IO::WaitReadable instead of EAGAIN for blocking read (#2121)
    • Ensure BUNDLE_GEMFILE is unspecified in workers if unspecified in master when using prune_bundler (#2154)
    • Rescue and log exceptions in hooks defined by users (on_worker_boot, after_worker_fork etc) (#1551)
    • Read directly from the socket in #read_and_drop to avoid raising further SSL errors (#2198)
    • Set Connection: closed header when queue requests is disabled (#2216)
    • Pass queued requests to thread pool on server shutdown (#2122)
    • Fixed a few minor concurrency bugs in ThreadPool that may have affected non-GVL Rubies (#2220)
    • Fix out_of_band hook never executed if the number of worker threads is > 1 (#2177)
    • Fix ThreadPool#shutdown timeout accuracy (#2221)
    • Fix UserFileDefaultOptions#fetch to properly use default (#2233)
    • Improvements to out_of_band hook (#2234)
    • Prefer the rackup file specified by the CLI (#2225)
    • Fix for spawning subprocesses with fork_worker option (#2267)
    • Set CONTENT_LENGTH for chunked requests (#2287)
    • JRuby - Add Puma::MiniSSL::Engine#init? and #teardown methods, run all SSL tests (#2317)
    • Improve shutdown reliability (#2312)
    • Resolve issue with threadpool waiting counter decrement when thread is killed
    • Constrain rake-compiler version to 0.9.4 to fix ClassNotFound exception when using MiniSSL with Java8.
    • Fix recursive prune_bundler (#2319).
    • Ensure that TCP_CORK is usable
    • Fix corner case when request body is chunked (#2326)
    • Fix filehandle leak in MiniSSL (#2299)
  • Refactor

    • Remove unused loader argument from Plugin initializer (#2095)
    • Simplify Configuration.random_token and remove insecure fallback (#2102)
    • Simplify Runner#start_control URL parsing (#2111)
    • Removed the IOBuffer extension and replaced with Ruby (#1980)
    • Update Rack::Handler::Puma.run to use **options (#2189)
    • ThreadPool concurrency refactoring (#2220)
    • JSON parse cluster worker stats instead of regex (#2124)
    • Support parallel tests in verbose progress reporting (#2223)
    • Refactor error handling in server accept loop (#2239)

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma -

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - v5.0.0.beta2

This is the final beta release before 5.0.0.

Differences versus 5.0.0.beta1 are these additional bugfixes:

  • Fixed a typo re: maximum URI path length #2344
  • rack.multithread and rack.multiprocess now dynamically resolved by max_thread and workers respectively (#2288)
  • Log binding on http:// for TCP bindings to make it clickable
  • Fix JSON loading issues on phased-restarts (#2269)
  • Improve shutdown reliability (#2312, #2338)
  • Close client http connections made to an ssl server with TLSv1.3 (#2116)
  • Fix for spawning subprocesses with fork_worker option (#2267)
  • Set CONTENT_LENGTH for chunked requests (#2287)
  • JRuby - Add Puma::MiniSSL::Engine#init? and #teardown methods, run all SSL tests (#2317)
  • Improve shutdown reliability (#2312)
  • Resolve issue with threadpool waiting counter decrement when thread is killed
  • Constrain rake-compiler version to 0.9.4 to fix ClassNotFound exception when using MiniSSL with Java8.
  • Fix recursive prune_bundler (#2319).
  • Ensure that TCP_CORK is usable
  • Fix corner case when request body is chunked (#2326)

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - v4.3.6

https://github.com/puma/puma/compare/v4.3.5...4.3.6

A quick fix for a build error on Mac OS and a JSON require fix for those using phased restart.

  • Explicitly include ctype.h to fix compilation warning and build error on macOS with Xcode 12 (#2304)
  • Don't require json at boot (#2269)

- Ruby
Published by nateberkopec over 5 years ago

https://github.com/puma/puma - v4.3.0 - Mysterious Traveller

0000492109

Mysterious Traveller

  • Features

    • Strip whitespace at end of HTTP headers (#2010)
    • Optimize HTTP parser for JRuby (#2012)
    • Add SSL support for the control app and cli (#2046, #2052)
  • Bugfixes

    • Fix Errno::EINVAL when SSL is enabled and browser rejects cert (#1564)
    • Fix pumactl defaulting puma to development if an environment was not specified (#2035)
    • Fix closing file stream when reading pid from pidfile (#2048)
    • Fix a typo in configuration option --extra_runtime_dependencies (#2050)

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - 4.2.1

  • 3 bugfixes
    • Fix socket activation of systemd (pre-existing) unix binder files (#1842, #1988)
    • Deal with multiple calls to bind correctly (#1986, #1994, #2006)
    • Accepts symbols for verify_mode (#1222)

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - 4.2.0 - Distant Airhorns

  • 6 features
    • Pumactl has a new -e environment option and reads config/puma/.rb config files (#1885)
    • Semicolons are now allowed in URL paths (MRI only), useful for Angular or Redmine (#1934)
    • Allow extra dependencies to be defined when using prune_bundler (#1105)
    • Puma now reports the correct port when binding to port 0, also reports other listeners when binding to localhost (#1786)
    • Sending SIGINFO to any Puma worker now prints currently active threads and their backtraces (#1320)
    • Puma threads all now have their name set on Ruby 2.3+ (#1968)
  • 4 bugfixes
    • Fix some misbehavior with phased restart and externally SIGTERMed workers (#1908, #1952)
    • Fix socket closing on error (#1941)
    • Removed unnecessary SIGINT trap for JRuby that caused some race conditions (#1961)
    • Fix socket files being left around after process stopped (#1970)
  • Absolutely thousands of lines of test improvements and fixes thanks to @MSP-Greg

air-horn-sound-s-econd-air-horn-sound-me-this-23916124

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - 4.1.1

3 bugfixes

  • Revert our attempt to not dup STDOUT/STDERR (#1946)
  • Fix socket close on error (#1941)
  • Fix workers not shutting down correctly (#1908)

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - 4.1.0 - Fourth and One

  • 4 features

    • Add REQUEST_PATH on parse error message (#1831)
    • You can now easily add custom log formatters with the log_formatter config option (#1816)
    • Puma.stats now provides process start times (#1844)
    • Add support for disabling TLSv1.1 (#1836)
  • 7 bugfixes

    • Fix issue where Puma was creating zombie process entries (#1887)
    • Fix bugs with line-endings and chunked encoding (#1812)
    • RACK_URL_SCHEME is now set correctly in all conditions (#1491)
    • We no longer mutate global STDOUT/STDERR, particularly the sync setting (#1837)
    • SSL read_nonblock no longer blocks (#1857)
    • Swallow connection errors when sending early hints (#1822)
    • Backtrace no longer dumped when invalid pumactl commands are run (#1863)
  • 5 other

    • Avoid casting worker_timeout twice (#1838)
    • Removed a call to private that wasn't doing anything (#1882)
    • README, Rakefile, docs and test cleanups (#1848, #1847, #1846, #1853, #1859, #1850, #1866, #1870, #1872, #1833, #1888)
    • Puma.io has proper documentation now (https://puma.io/puma/)
    • Added the Contributor Covenant CoC
  • 1 known issue

    • Some users are still experiencing issues surrounding socket activation and Unix sockets (#1842)

Codename: Fourth and One

why-dont-coaches-go-for-it-on-4th-down

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - v4.0.1

  • 2 bugfixes
    • Fix socket removed after reload - should fix problems with systemd socket activation. (#1829)
    • 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)
  • 1 other
    • Removed unnecessary RUBY_VERSION checks. (#1827)

- Ruby
Published by nateberkopec over 6 years ago

https://github.com/puma/puma - v4.0.0 - 4 Fast 4 Furious

9 feature

  • Add support for disabling TLSv1.0 (#1562)
  • Request body read time metric (#1569)
  • Add out_of_band hook (#1648)
  • Re-implement (native) IOBuffer for JRuby (#1691)
  • Min worker timeout (#1716)
  • Add option to suppress SignalException on SIGTERM (#1690)
  • Allow mutual TLS CA to be set using ssl_bind DSL (#1689)
  • Reactor now uses nio4r instead of select (#1728)

9 bugfixes

  • Do not accept new requests on shutdown (#1685, #1808)
  • Fix 3 corner cases when request body is chunked (#1508)
  • Change pid existence check's condition branches (#1650)
  • Don't call .stop on a server that doesn't exist (#1655)
  • Implemented NID_X9_62_prime256v1 (P-256) curve over P-521 (#1671)
  • Fix @notify.close can't modify frozen IOError (RuntimeError) (#1583)
  • Fix Java 8 support (#1773)
  • Fix error uninitialized constant Puma::Cluster (#1731)
  • Fix not_token being able to be set to true (#1803)

- Ruby
Published by schneems over 6 years ago

https://github.com/puma/puma - v3.12.1

v3.12.1

- Ruby
Published by schneems almost 7 years ago

https://github.com/puma/puma -

- Ruby
Published by schneems almost 8 years ago

https://github.com/puma/puma - 3.11.0 - Love Song

download

  • 2 features:

    • HTTP 103 Early Hints (#1403)
    • 421/451 status codes now have correct status messages attached (#1435)
  • 9 bugfixes:

    • Environment config files (/config/puma/.rb) load correctly (#1340)
    • Specify windows dependencies correctly (#1434, #1436)
    • puma/events required in test helper (#1418)
    • Correct control CLI's option help text (#1416)
    • Remove a warning for unused variable in mini_ssl (#1409)
    • Correct pumactl docs argument ordering (#1427)
    • Fix an uninitialized variable warning in server.rb (#1430)
    • Fix docs typo/error in Launcher init (#1429)
    • Deal with leading spaces in RUBYOPT (#1455)
  • 2 other:

    • Add docs about internals (#1425, #1452)
    • Tons of test fixes from @MSP-Greg (#1439, #1442, #1464)

- Ruby
Published by nateberkopec over 8 years ago

https://github.com/puma/puma - 3.10.0 - Russell's Teapot

teapot

  • 3 features:

    • The status server has a new /gc and /gc-status command. (#1384)
    • The persistent and first data timeouts are now configurable (#1111)
    • Implemented RFC 2324 (#1392)
  • 12 bugfixes:

    • 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)
    • Fix hangups with SSL and persistent connections. (#1334)
    • Fix Rails double-binding to a port (#1383)
    • Fix incorrect thread names (#1368)
    • Fix issues with /etc/hosts and JRuby where localhost addresses were not correct. (#1318)
    • Fix compatibility with RUBYOPT="--enable-frozen-string-literal" (#1376)
    • Fixed some compiler warnings (#1388)
    • We actually run the integration tests in CI now (#1390)
    • No longer shipping unnecessary directories in the gemfile (#1391)
    • If RUBYOPT is nil, we no longer blow up on restart. (#1385)
    • Correct response to SIGINT (#1377)
    • Proper exit code returned when we receive a TERM signal (#1337)
  • 3 refactors:

    • Various test improvements from @grosser
    • Rubocop (#1325)
    • Hoe has been removed (#1395)
  • 1 known issue:

    • Socket activation doesn't work in JRuby. Their fault, not ours. (#1367)

- Ruby
Published by nateberkopec over 8 years ago

https://github.com/puma/puma - 3.9.1

  • 2 bugfixes:
    • Fixed compatibility with older Bundler versions (#1314)
    • Some internal test/development cleanup (#1311, #1313)

- Ruby
Published by nateberkopec over 8 years ago

https://github.com/puma/puma - 3.9.0 - "Private Caller"

  • 2 features:

    • The ENV is now reset to its original values when Puma restarts via USR1/USR2 (#1260) (MRI only, no JRuby support)
    • Puma will no longer accept more clients than the maximum number of threads. (#1278)
  • 9 bugfixes:

    • Reduce information leakage by preventing HTTP parse errors from writing environment hashes to STDERR (#1306)
    • Fix SSL/WebSocket compatibility (#1274)
    • HTTP headers with empty values are no longer omitted from responses. (#1261)
    • Fix a Rack env key which was set to nil. (#1259)
    • peercert has been implemented for JRuby (#1248)
    • Fix port settings when using rails s (#1277, #1290)
    • Fix compat w/LibreSSL (#1285)
    • Fix restarting Puma w/symlinks and a new Gemfile (#1282)
    • Replace Dir.exists? with Dir.exist? (#1294)
  • 1 known issue:

    • 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.

- Ruby
Published by nateberkopec almost 9 years ago

https://github.com/puma/puma -

  • 2 bugfixes:

    • Port from rack handler does not take precedence over config file in Rails 5.1.0.beta2+ and 5.0.1.rc3+ (#1234)
    • The tmp/restart.txt plugin no longer restricts the user from running more than one server from the same folder at a time (#1226)
  • 1 feature:

    • Closed clients are aborted to save capacity (#1227)
  • 1 refactor:

    • Bundler is no longer a dependency from tests (#1213)

- Ruby
Published by nateberkopec almost 9 years ago

https://github.com/puma/puma - 3.8.1

  • 1 bugfix:
    • Remove method call to method that no longer exists (#1239)

- Ruby
Published by nateberkopec almost 9 years ago

https://github.com/puma/puma - 3.8.2

  • 1 bugfix:
    • Deal with getsockopt with TCP_INFO failing for sockets that say they're TCP but aren't really. (#1241)

- Ruby
Published by nateberkopec almost 9 years ago

https://github.com/puma/puma - 3.7.1

  • 2 bugfixes:
    • Fix typo which blew up MiniSSL (#1182)
    • Stop overriding command-line options with the config file (#1203)

- Ruby
Published by nateberkopec about 9 years ago

https://github.com/puma/puma - 3.7.0

  • 6 minor features:
    • Allow rack handler to accept ssl host. (#1129)
    • Refactor TTOU processing. TTOU now handles multiple signals at once. (#1165)
    • Pickup any remaining chunk data as the next request.
    • Prevent short term thread churn - increased auto trim default to 30 seconds.
    • Raise error when stdout or stderr is not writable. (#1175)
    • Add Rack 2.0 support to gemspec. (#1068)
  • 5 refactors:
    • Compare host and server name only once per call. (#1091)
    • Minor refactor on Thread pool (#1088)
    • Removed a ton of unused constants, variables and files.
    • Use MRI macros when allocating heap memory
    • Use hooks for on_booted event. (#1160)
  • 14 bugfixes:
    • Add eof? method to NullIO? (#1169)
    • Fix Puma startup in provided init.d script (#1061)
    • Fix default SSL mode back to none. (#1036)
    • Fixed the issue of @listeners getting nil io (#1120)
    • Make get_dh1024 compatible with OpenSSL v1.1.0 (#1178)
    • More gracefully deal with SSL sessions. Fixes #1002
    • Move puma.rb to just autoloads. Fixes #1063
    • MiniSSL: Provide write as <<. Fixes #1089
    • Prune bundler should inherit fds (#1114)
    • Replace use of Process.getpgid which does not behave as intended on all platforms (#1110)
    • Transfer encoding header should be downcased before comparison (#1135)
    • Use same write log logic for hijacked requests. (#1081)
    • Fix uninitialized constant Puma::StateFile (#1138)
    • Fix access priorities of each level in LeveledOptions (#1118)
  • 3 others:
    • Lots of tests added/fixed/improved. Switched to Minitest from Test::Unit. Big thanks to @frodsan.
    • Lots of documentation added/improved.
    • Add license indicators to the HTTP extension. (#1075)

- Ruby
Published by nateberkopec about 9 years ago