Skip to content

Update puma 6.6.1 → 7.2.0 (major)#882

Open
depfu[bot] wants to merge 1 commit intodevelopfrom
depfu/update/puma-7.2.0
Open

Update puma 6.6.1 → 7.2.0 (major)#882
depfu[bot] wants to merge 1 commit intodevelopfrom
depfu/update/puma-7.2.0

Conversation

@depfu
Copy link
Copy Markdown
Contributor

@depfu depfu Bot commented Jan 28, 2026

Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ puma (6.6.1 → 7.2.0) · Repo · Changelog

Release Notes

7.2.0

7.2.0 On The Corner

Nate Berkopec On The Corner Chaos 65
  • 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

New Contributors

Full Changelog: v7.1.0...v7.2.0

7.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: v7.0.4...v7.1.0

7.0.4 (from changelog)

  • Bugfixes

    • Fix SSL_shutdown error handling (#3703)
    • Strip whitespace from the beginnings of request header values. (#3742)
  • Performance

    • puma_http11.c: Use interned UTF-8 strings for hash keys (#3754)
    • Move sleep cluster logic to its own class (#3746, #3740)

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

7.0.2

What's Changed

  • Fix Puma not booting if queue_requests disabled by @stanhu in #3731
  • Replace sleep 0.001 while out_of_band_running with condition variable by @bensheldon in #3729
  • bug: control_cli.rb - Fixup pumactl code to load puma.rb for deprecate_method_change by @MSP-Greg in #3736

New Contributors

Full Changelog: v7.0.1...v7.0.2

7.0.1

What's Changed

Full Changelog: v7.0.0...v7.0.1

7.0.0

7.0.0

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

Does any of this look wrong? Please let us know.

Commits

See the full diff on Github. The new version differs by more commits than we can show here.

↗️ nio4r (indirect, 2.7.4 → 2.7.5) · Repo · Changelog

Commits

See the full diff on Github. The new version differs by 4 commits:


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu depfu Bot added dependencies Pull requests that update a dependency file Technical Debt labels Jan 28, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 28, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.49%. Comparing base (29c1bf8) to head (13a9945).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop     #882   +/-   ##
========================================
  Coverage    93.49%   93.49%           
========================================
  Files           84       84           
  Lines         1537     1537           
========================================
  Hits          1437     1437           
  Misses         100      100           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@depfu depfu Bot force-pushed the depfu/update/puma-7.2.0 branch from 212e576 to 3cdceb1 Compare February 19, 2026 01:45
@depfu depfu Bot force-pushed the depfu/update/puma-7.2.0 branch 2 times, most recently from 42bf14f to 80ab901 Compare March 27, 2026 19:50
@depfu depfu Bot force-pushed the depfu/update/puma-7.2.0 branch from 80ab901 to 13a9945 Compare May 4, 2026 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file Technical Debt

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants