{"id":6265,"name":"pg","ecosystem":"rubygems","repository_url":"https://github.com/ged/ruby-pg","issues_count":8720,"created_at":"2025-06-06T22:01:52.095Z","updated_at":"2025-06-06T22:01:52.095Z","purl":"pkg:gem/pg","metadata":{"id":271962,"name":"pg","ecosystem":"rubygems","description":"Pg is the Ruby interface to the PostgreSQL RDBMS. It works with PostgreSQL 9.3 and later.","homepage":"https://github.com/ged/ruby-pg","licenses":"BSD-2-Clause","normalized_licenses":["BSD-2-Clause"],"repository_url":"https://github.com/ged/ruby-pg","keywords_array":[],"namespace":null,"versions_count":267,"first_release_published_at":"2009-07-25T18:03:21.000Z","latest_release_published_at":"2024-10-24T20:16:41.736Z","latest_release_number":"1.5.9","last_synced_at":"2025-06-07T01:36:06.666Z","created_at":"2022-04-06T06:51:57.463Z","updated_at":"2025-06-07T01:39:14.086Z","registry_url":"https://rubygems.org/gems/pg","install_command":"gem install pg -s https://rubygems.org","documentation_url":"http://www.rubydoc.info/gems/pg/","metadata":{"funding":null},"repo_metadata":{"id":9568715,"uuid":"11481074","full_name":"ged/ruby-pg","owner":"ged","description":"A PostgreSQL client library for Ruby","archived":false,"fork":false,"pushed_at":"2025-04-08T11:47:07.000Z","size":3590,"stargazers_count":820,"open_issues_count":19,"forks_count":190,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-06-03T11:49:38.356Z","etag":null,"topics":["c","client","database","postgresql","rdbms","ruby"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ged.png","metadata":{"files":{"readme":"README-OS_X.rdoc","changelog":"History.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2013-07-17T16:20:32.000Z","updated_at":"2025-05-18T21:48:11.000Z","dependencies_parsed_at":"2024-02-28T13:40:46.931Z","dependency_job_id":"511e1b67-0f43-4561-ba0a-cb2e5e254c52","html_url":"https://github.com/ged/ruby-pg","commit_stats":{"total_commits":1888,"total_committers":66,"mean_commits":"28.606060606060606","dds":0.3082627118644068,"last_synced_commit":"c6d1047b419e87e57aaec076d9338e80f9bd269a"},"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ged","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258021704,"owners_count":22637767,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"ged","name":"Michael Granger","uuid":"13501","kind":"user","description":"Ruby hacker, psittacinophile, amateur balsamic vinegar connoisseur.","email":"","website":"http://deveiate.org/","location":"Portland, OR","twitter":null,"company":"Ravn","icon_url":"https://avatars.githubusercontent.com/u/13501?u=c77ef0b68728c85726f2b22de902ebbfd6ecca5a\u0026v=4","repositories_count":149,"last_synced_at":"2023-04-09T03:40:21.370Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ged","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T16:17:17.070Z","updated_at":"2023-04-09T03:40:21.411Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ged","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ged/repositories"},"tags":[{"name":"v1.5.9","sha":"afe2f208f7d5eacea1260ce1def10e1fb30b8241","kind":"tag","published_at":"2024-10-24T20:15:57.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.9","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.9/manifests"},{"name":"v1.5.8","sha":"cb35e3f33089c38e749ff8efbbfdffbcf566f45c","kind":"tag","published_at":"2024-09-06T15:48:52.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.8","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.8/manifests"},{"name":"v1.5.7","sha":"0ac827c3b3105f5ebed625ed37657587a0b4b712","kind":"tag","published_at":"2024-07-28T11:06:38.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.7","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.7/manifests"},{"name":"v1.5.6","sha":"c59ca8f8c0812a3f76e9f473ec85f49cf3c682e9","kind":"tag","published_at":"2024-03-01T18:16:43.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.6","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.6/manifests"},{"name":"v1.5.5","sha":"daec80f91b9519509ca1694a231f11a75cb43f7f","kind":"tag","published_at":"2024-02-15T13:22:13.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.5","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.5/manifests"},{"name":"v1.5.4","sha":"635d29e951fe1577a46d52aa16985994e213a0d3","kind":"tag","published_at":"2023-09-01T08:02:56.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.4","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.4/manifests"},{"name":"v1.5.3","sha":"364e5f8bee8255cf31c2d4f3ea4839b0527bb0f9","kind":"tag","published_at":"2023-04-28T12:31:15.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.3/manifests"},{"name":"v1.5.2","sha":"070ab36f7c67e6322ec74f10e01ab81b10ea961a","kind":"tag","published_at":"2023-04-26T08:29:24.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.2/manifests"},{"name":"v1.5.1","sha":"cc110f5e16f7e9cacb416260721b6fe2068022c2","kind":"tag","published_at":"2023-04-24T19:16:22.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.1/manifests"},{"name":"v1.5.0","sha":"70460e38d416cb9112df72ca941a1f9d620663b2","kind":"tag","published_at":"2023-04-24T10:02:30.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.5.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.5.0/manifests"},{"name":"v1.4.6","sha":"cae53b2a7ea8880182e08a1b5b691382b8e5375b","kind":"tag","published_at":"2023-02-26T09:48:47.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.6","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.6/manifests"},{"name":"v1.4.5","sha":"5855e7c199cdb0bee764f2f75e304eb2daa3aca7","kind":"tag","published_at":"2022-11-17T13:18:00.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.5","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.5/manifests"},{"name":"v1.4.4","sha":"b4a371ddd94b0ff418c2f53da560d31a1d668a08","kind":"tag","published_at":"2022-10-11T11:30:28.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.4","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.4/manifests"},{"name":"v1.4.3","sha":"441cb1ed4b3350441746d7c94d97168980a6183c","kind":"tag","published_at":"2022-08-09T14:42:06.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.3/manifests"},{"name":"v1.4.2","sha":"d41fc0cf1e7abac4be95348cf0da9ab0c08ef986","kind":"tag","published_at":"2022-07-27T08:04:35.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.2/manifests"},{"name":"v1.4.1","sha":"252512608a814de16bbad55911f9bbcef0e73cb9","kind":"tag","published_at":"2022-06-24T07:34:31.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.1/manifests"},{"name":"v1.4.0","sha":"3c14a309463fbaef569007b134a96e35b022c92e","kind":"tag","published_at":"2022-06-20T09:37:46.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.4.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.4.0/manifests"},{"name":"v1.3.5","sha":"9b7909d3d78c6ba2780427fab106d7c215ca300f","kind":"tag","published_at":"2022-04-25T13:07:12.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.5","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.5/manifests"},{"name":"v1.3.4","sha":"a2f34e371c5283c98dd77003623cf317bd93e0b7","kind":"tag","published_at":"2022-03-10T13:56:40.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.4","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.4/manifests"},{"name":"v1.3.3","sha":"0d88a890f8ec7ce8aef10b51acb66c49d21602ff","kind":"tag","published_at":"2022-02-22T21:00:20.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.3/manifests"},{"name":"v1.3.2","sha":"aae9eb2f8d93cc05ef99336c0c4f8642336de490","kind":"tag","published_at":"2022-02-14T13:40:45.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.2/manifests"},{"name":"v1.3.1","sha":"6c436bda9aaf7bc053ef348afd99e2e035d5d0a3","kind":"tag","published_at":"2022-02-01T04:07:50.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.1/manifests"},{"name":"v1.3.0","sha":"0206294450a7edad13f79649a7cdf4cab2d9a71e","kind":"tag","published_at":"2022-01-23T19:53:05.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.3.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.3.0/manifests"},{"name":"v1.2.3","sha":"4101db666ce7f03feeb230375d5ab1af14549f9f","kind":"tag","published_at":"2020-03-18T20:16:13.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.2.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.3/manifests"},{"name":"v1.2.2","sha":"2ac23695bae715dcd49e6d723b146fd5ae5fc7f3","kind":"tag","published_at":"2020-01-08T18:37:02.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.2.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.2/manifests"},{"name":"v1.2.1","sha":"913d75d43efc1179f20db583ce8b8a965e40b797","kind":"tag","published_at":"2020-01-02T22:20:04.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.2.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.1/manifests"},{"name":"v1.2.0","sha":"de577148da02c8e0f3ddc9d0d2e11da8a42eb4e7","kind":"tag","published_at":"2019-12-24T20:40:52.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.2.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.2.0/manifests"},{"name":"v1.1.4","sha":"1079713d5cbe9be02e2417b6b172001be5f470d4","kind":"commit","published_at":"2019-01-09T16:35:36.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.1.4","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.4/manifests"},{"name":"v1.1.3","sha":"4330521f7dffa8e5946068e57958a7df7abc1ce0","kind":"commit","published_at":"2018-09-07T00:30:02.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.1.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.3/manifests"},{"name":"v1.1.2","sha":"3fd55e32d99663e4057598df0031a1e96f8e1997","kind":"commit","published_at":"2018-08-29T00:40:01.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.1.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.2/manifests"},{"name":"v1.1.1","sha":"67ce5eeb72d3912bf62cae0e98cbaa2a8f0fd994","kind":"commit","published_at":"2018-08-27T21:44:04.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.1.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.1/manifests"},{"name":"v1.1.0","sha":"07d094ce0e5c1aca3cf22fd7e00a496a6e613501","kind":"commit","published_at":"2018-08-24T21:44:29.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.1.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"be901b666350229de96e98d1d215e07f2dd5257e","kind":"commit","published_at":"2018-01-10T15:57:25.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v1.0.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v1.0.0/manifests"},{"name":"v0.21.0","sha":"9b16d34a5935d4e27f9646785922d0927a446d22","kind":"commit","published_at":"2017-06-12T22:26:48.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.21.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.21.0/manifests"},{"name":"v0.20.0","sha":"aeaf720d33f14665d7f4015488139871594eff56","kind":"commit","published_at":"2017-03-10T21:57:06.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.20.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.20.0/manifests"},{"name":"v0.19.0","sha":"23c3fad31d6a333d839fc88baa4e3965e55a414d","kind":"commit","published_at":"2016-09-22T03:23:26.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.19.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.19.0/manifests"},{"name":"v0.18.4","sha":"9308021465b42b5e266a2e84ae04dfa546eee938","kind":"commit","published_at":"2015-11-13T19:18:13.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.18.4","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.18.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.4/manifests"},{"name":"v0.18.3","sha":"c8fe655bf14da5b9362c3e3271c8020d08b6341c","kind":"commit","published_at":"2015-09-03T21:03:28.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.18.3","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.18.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.3/manifests"},{"name":"v0.18.2","sha":"b692ea460406b24a8fc4421fb0894e9676facd78","kind":"commit","published_at":"2015-05-14T18:49:27.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.18.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.18.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.2/manifests"},{"name":"v0.18.1","sha":"f7071f9f926e09f7855f2f63fac3b2a2df8a854f","kind":"commit","published_at":"2015-01-05T20:58:44.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.18.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.1/manifests"},{"name":"v0.18.0","sha":"668d69651c3bf34a54e45d8e5eb5017aea1fd25f","kind":"commit","published_at":"2015-01-03T20:19:38.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.18.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.18.0/manifests"},{"name":"v0.17.1","sha":"6ba1d233449fb7918a27c6d160936ff73c8e01cf","kind":"commit","published_at":"2013-12-19T00:20:40.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.17.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.17.1/manifests"},{"name":"v0.17.0","sha":"5c081f3fa2d1492a9c09e3f8cb8e03a226e054a2","kind":"commit","published_at":"2013-09-16T18:17:23.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.17.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.17.0/manifests"},{"name":"v0.16.0","sha":"f5edba02a3a74519da8671e888f105221f6d4199","kind":"commit","published_at":"2013-07-23T13:55:15.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.16.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.16.0/manifests"},{"name":"v0.15.1","sha":"81554e6edab536ac8bec1e03f357691c20830d90","kind":"commit","published_at":"2013-04-08T18:16:45.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.15.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.15.1/manifests"},{"name":"v0.15.0","sha":"0f3844f3867d15114edc8775877f1a6f5a757464","kind":"commit","published_at":"2013-03-26T14:29:42.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.15.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.15.0/manifests"},{"name":"v0.14.1","sha":"4a02d1f3de506eda9f43a86065d29362b0908a5f","kind":"commit","published_at":"2012-09-02T15:43:05.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.14.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.14.1/manifests"},{"name":"v0.14.0","sha":"ae2df0b9988e86c2f6791dd1b9ff904c334298cb","kind":"commit","published_at":"2012-06-23T17:35:08.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.14.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.14.0/manifests"},{"name":"v0.13.2","sha":"3086c89d30a350dd40ffd3f71099101285c3f884","kind":"commit","published_at":"2012-02-22T21:29:17.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.13.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.2/manifests"},{"name":"v0.13.1","sha":"56460a46e520298413838b2afc2b7fac4940f56d","kind":"commit","published_at":"2012-02-12T21:20:41.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.13.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.1/manifests"},{"name":"v0.13.0","sha":"1e363853711c1aafcb787e306f0aa86b9465c55d","kind":"commit","published_at":"2012-02-09T18:39:57.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.13.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.13.0/manifests"},{"name":"v0.12.2","sha":"df8f4dd5a09214459fc18d188c2da361673ca8c8","kind":"commit","published_at":"2012-01-03T23:14:47.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.12.2","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.2/manifests"},{"name":"v0.12.1","sha":"f8644d2eb7f0bac007c760c93388a8ae3184b305","kind":"commit","published_at":"2012-01-02T20:31:34.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.12.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.1/manifests"},{"name":"v0.12.0","sha":"756e52319d53533bb57edf291f0c2b43bd8d179f","kind":"commit","published_at":"2011-12-07T22:23:28.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.12.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.12.0/manifests"},{"name":"v0.11.0","sha":"03940ae879cc65bb229f22806c151cb0cef50eac","kind":"commit","published_at":"2011-04-19T00:27:53.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.11.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.11.0/manifests"},{"name":"v0.10.1","sha":"29884f6785270d302e4271817fc6d635044f6b93","kind":"commit","published_at":"2011-01-19T16:00:22.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.10.1","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.10.1/manifests"},{"name":"v0.10.0","sha":"dcc02dec24c70d43c9ee3702536d9cb31046c685","kind":"commit","published_at":"2010-12-01T22:19:32.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.10.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.10.0/manifests"},{"name":"0.9.0","sha":"186e40ee9d55f88716c69f15ad7bcb54a7da56fa","kind":"commit","published_at":"2010-02-28T16:56:16.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/0.9.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/0.9.0/manifests"},{"name":"v0.9.0","sha":"186e40ee9d55f88716c69f15ad7bcb54a7da56fa","kind":"commit","published_at":"2010-02-28T16:56:16.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.9.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.9.0/manifests"},{"name":"v0.8.0","sha":"bf35da670d8b1ef75efa00919f0a2b5aadeb741d","kind":"commit","published_at":"2009-03-28T22:53:52.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/v0.8.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/v0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/v0.8.0/manifests"},{"name":"0.8.0","sha":"bf35da670d8b1ef75efa00919f0a2b5aadeb741d","kind":"commit","published_at":"2009-03-28T22:53:52.000Z","download_url":"https://codeload.github.com/ged/ruby-pg/tar.gz/0.8.0","html_url":"https://github.com/ged/ruby-pg/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ged%2Fruby-pg/tags/0.8.0/manifests"}]},"repo_metadata_updated_at":"2025-06-07T01:39:14.086Z","dependent_packages_count":2180,"downloads":373398174,"downloads_period":"total","dependent_repos_count":468233,"rankings":{"downloads":0.059098359741751316,"dependent_repos_count":0.03512449682764465,"dependent_packages_count":0.024531394609783565,"stargazers_count":2.1370189895295546,"forks_count":2.0054415093498066,"docker_downloads_count":0.1460733042673476,"average":0.7345480090543147},"purl":"pkg:gem/pg","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/rubygems/pg","docker_dependents_count":1121,"docker_downloads_count":817679683,"usage_url":"https://repos.ecosyste.ms/usage/rubygems/pg","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/rubygems/pg/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pg/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pg/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pg/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages/pg/related_packages","maintainers":[{"uuid":"39211","login":"larskanis","name":null,"email":null,"url":null,"packages_count":26,"html_url":"https://rubygems.org/profiles/larskanis","role":null,"created_at":"2022-11-09T09:44:59.441Z","updated_at":"2022-11-09T09:44:59.441Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/larskanis/packages"},{"uuid":"42792","login":"ged","name":null,"email":null,"url":null,"packages_count":74,"html_url":"https://rubygems.org/profiles/ged","role":null,"created_at":"2022-11-09T09:44:59.447Z","updated_at":"2022-11-09T09:44:59.447Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/ged/packages"},{"uuid":"29843","login":"jdavis","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://rubygems.org/profiles/jdavis","role":null,"created_at":"2022-11-09T09:44:59.458Z","updated_at":"2022-11-09T09:44:59.458Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers/jdavis/packages"}],"registry":{"name":"rubygems.org","url":"https://rubygems.org","ecosystem":"rubygems","default":true,"packages_count":198121,"maintainers_count":66429,"namespaces_count":0,"keywords_count":17804,"github":"rubygems","metadata":{"funded_packages_count":7046},"icon_url":"https://github.com/rubygems.png","created_at":"2022-04-04T15:19:23.446Z","updated_at":"2025-06-07T05:38:31.497Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/rubygems.org/namespaces"}},"unique_repositories_count":4390,"unique_repositories_count_past_30_days":9,"recent_issues":[{"uuid":"5914170013","node_id":"PR_kwDOAHOAqs8AAAABJNQJUg","number":44739,"state":"open","title":"DEPS: Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T21:10:30.000Z","updated_at":"2026-10-18T21:10:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"DEPS: Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n- [Changelog](https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0)","html_url":"https://github.com/discourse/discourse/pull/44739","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fdiscourse/issues/44739","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44739/packages"},{"uuid":"5904830289","node_id":"PR_kwDOSkPkLM8AAAABJGFNMg","number":139,"state":"open","title":"build(deps): bump the klipper-api group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T01:03:27.000Z","updated_at":"2026-10-18T01:05:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"klipper-api","update_count":3,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"webmock","old_version":"3.26.4","new_version":"3.34.0","repository_url":"https://github.com/bblimke/webmock"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the klipper-api group with 3 updates in the /apps/klipper-api directory: [rails](https://github.com/rails/rails), [pg](https://github.com/ged/ruby-pg) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.4 to 3.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.34.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003ewith(query: :any)\u003c/code\u003e to match any query string (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003estub_request(:get, \u0026quot;www.example.com\u0026quot;).with(query: :any)\u003c/code\u003e matches requests with any query string, or none. RSpec's \u003ccode\u003eanything\u003c/code\u003e works the same way. Previously, this raised \u003ccode\u003eNoMethodError\u003c/code\u003e, and you had to write \u003ccode\u003ewith(query: hash_including({}))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eUse a URL without query parameters when passing \u003ccode\u003equery: :any\u003c/code\u003e. Otherwise, WebMock raises \u003ccode\u003eArgumentError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/nightpool\"\u003enightpool\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRaise a clear \u003ccode\u003eArgumentError\u003c/code\u003e for an unsupported \u003ccode\u003equery\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003ePreviously, a value such as \u003ccode\u003ewith(query: :all)\u003c/code\u003e raised \u003ccode\u003eNoMethodError\u003c/code\u003e (undefined method \u003ccode\u003esplit\u003c/code\u003e). The new error lists the supported values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow \u003ccode\u003eanything\u003c/code\u003e for keys given without a value to \u003ccode\u003ehash_including\u003c/code\u003e or \u003ccode\u003ehash_excluding\u003c/code\u003e outside RSpec\u003c/p\u003e\n\u003cp\u003ePreviously, with Minitest or Test::Unit, messages showed \u003ccode\u003e#\u0026lt;WebMock::Matchers::AnyArgMatcher:0x...\u0026gt;\u003c/code\u003e, for example for \u003ccode\u003ewith(query: hash_including(:a))\u003c/code\u003e. RSpec's own matchers already showed \u003ccode\u003eanything\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProvide \u003ccode\u003eHTTP_HOST\u003c/code\u003e to \u003ccode\u003eto_rack\u003c/code\u003e apps when the client has not supplied a Host header (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, requests from some HTTP clients reached the Rack app without \u003ccode\u003eHTTP_HOST\u003c/code\u003e. This caused host checks such as Sinatra's \u003ccode\u003eHostAuthorization\u003c/code\u003e to see an empty host.\u003c/p\u003e\n\u003cp\u003eWebMock now fills in the host from the request URL, including the port when it is not the default. An explicit Host header is preserved.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/benoittgt\"\u003eBenoit Tigeot\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rack compatibility for \u003ccode\u003eto_rack\u003c/code\u003e apps\u003c/p\u003e\n\u003cp\u003eThe request environment now passes \u003ccode\u003eRack::Lint\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSERVER_PORT\u003c/code\u003e and \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e are now strings. If your app or tests read them directly, use string comparisons, such as \u003ccode\u003eenv['SERVER_PORT'] == \u0026quot;80\u0026quot;\u003c/code\u003e. The environment also includes \u003ccode\u003eSERVER_PROTOCOL\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCONTENT_TYPE\u003c/code\u003e is omitted when the request has no content type. The \u003ccode\u003eContent-Length\u003c/code\u003e header is passed only as \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e, without an extra \u003ccode\u003eHTTP_CONTENT_LENGTH\u003c/code\u003e entry. \u003ccode\u003eTransfer-Encoding\u003c/code\u003e is removed because the body has already been decoded.\u003c/p\u003e\n\u003cp\u003eRepeated header values are joined into one string. Header values and the body read from \u003ccode\u003erack.input\u003c/code\u003e now use binary (\u003ccode\u003eASCII-8BIT\u003c/code\u003e) strings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.33.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003eeffective_url\u003c/code\u003e as a String for stubbed Typhoeus responses (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/869\"\u003e#869\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, this was an \u003ccode\u003eAddressable::URI\u003c/code\u003e. If your code calls methods such as \u003ccode\u003eeffective_url.host\u003c/code\u003e, parse the returned string into a URI first.\u003c/p\u003e\n\u003cp\u003eThe URL keeps the request's port, query order and encoding. It follows curl's formatting: for example, \u003ccode\u003ehttp://example.com:80\u003c/code\u003e becomes \u003ccode\u003ehttp://example.com:80/\u003c/code\u003e. Stubbed timeouts now provide an \u003ccode\u003eeffective_url\u003c/code\u003e too.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tbrammar\"\u003eTom Brammar\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect removal of default ports from displayed URLs\u003c/p\u003e\n\u003cp\u003eWebMock could accidentally remove \u003ccode\u003e:80\u003c/code\u003e or \u003ccode\u003e:443\u003c/code\u003e from a URL's path or query. For example, an error message could show \u003ccode\u003e/foo/bar\u003c/code\u003e instead of \u003ccode\u003e/foo:80/bar\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eOnly the host's default port is now removed. This also works when the port is immediately followed by a query string, as in \u003ccode\u003ehttp://example.com:80?a=b\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.34.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003ewith(query: :any)\u003c/code\u003e to match any query string (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003estub_request(:get, \u0026quot;www.example.com\u0026quot;).with(query: :any)\u003c/code\u003e matches requests with any query string, or none. RSpec's \u003ccode\u003eanything\u003c/code\u003e works the same way. Previously, this raised \u003ccode\u003eNoMethodError\u003c/code\u003e, and you had to write \u003ccode\u003ewith(query: hash_including({}))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eUse a URL without query parameters when passing \u003ccode\u003equery: :any\u003c/code\u003e. Otherwise, WebMock raises \u003ccode\u003eArgumentError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/nightpool\"\u003enightpool\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRaise a clear \u003ccode\u003eArgumentError\u003c/code\u003e for an unsupported \u003ccode\u003equery\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003ePreviously, a value such as \u003ccode\u003ewith(query: :all)\u003c/code\u003e raised \u003ccode\u003eNoMethodError\u003c/code\u003e (undefined method \u003ccode\u003esplit\u003c/code\u003e). The new error lists the supported values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow \u003ccode\u003eanything\u003c/code\u003e for keys given without a value to \u003ccode\u003ehash_including\u003c/code\u003e or \u003ccode\u003ehash_excluding\u003c/code\u003e outside RSpec\u003c/p\u003e\n\u003cp\u003ePreviously, with Minitest or Test::Unit, messages showed \u003ccode\u003e#\u0026lt;WebMock::Matchers::AnyArgMatcher:0x...\u0026gt;\u003c/code\u003e, for example for \u003ccode\u003ewith(query: hash_including(:a))\u003c/code\u003e. RSpec's own matchers already showed \u003ccode\u003eanything\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProvide \u003ccode\u003eHTTP_HOST\u003c/code\u003e to \u003ccode\u003eto_rack\u003c/code\u003e apps when the client has not supplied a Host header (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, requests from some HTTP clients reached the Rack app without \u003ccode\u003eHTTP_HOST\u003c/code\u003e. This caused host checks such as Sinatra's \u003ccode\u003eHostAuthorization\u003c/code\u003e to see an empty host.\u003c/p\u003e\n\u003cp\u003eWebMock now fills in the host from the request URL, including the port when it is not the default. An explicit Host header is preserved.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/benoittgt\"\u003eBenoit Tigeot\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rack compatibility for \u003ccode\u003eto_rack\u003c/code\u003e apps\u003c/p\u003e\n\u003cp\u003eThe request environment now passes \u003ccode\u003eRack::Lint\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSERVER_PORT\u003c/code\u003e and \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e are now strings. If your app or tests read them directly, use string comparisons, such as \u003ccode\u003eenv['SERVER_PORT'] == \u0026quot;80\u0026quot;\u003c/code\u003e. The environment also includes \u003ccode\u003eSERVER_PROTOCOL\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCONTENT_TYPE\u003c/code\u003e is omitted when the request has no content type. The \u003ccode\u003eContent-Length\u003c/code\u003e header is passed only as \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e, without an extra \u003ccode\u003eHTTP_CONTENT_LENGTH\u003c/code\u003e entry. \u003ccode\u003eTransfer-Encoding\u003c/code\u003e is removed because the body has already been decoded.\u003c/p\u003e\n\u003cp\u003eRepeated header values are joined into one string. Header values and the body read from \u003ccode\u003erack.input\u003c/code\u003e now use binary (\u003ccode\u003eASCII-8BIT\u003c/code\u003e) strings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.33.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003eeffective_url\u003c/code\u003e as a String for stubbed Typhoeus responses (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/869\"\u003e#869\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, this was an \u003ccode\u003eAddressable::URI\u003c/code\u003e. If your code calls methods such as \u003ccode\u003eeffective_url.host\u003c/code\u003e, parse the returned string into a URI first.\u003c/p\u003e\n\u003cp\u003eThe URL keeps the request's port, query order and encoding. It follows curl's formatting: for example, \u003ccode\u003ehttp://example.com:80\u003c/code\u003e becomes \u003ccode\u003ehttp://example.com:80/\u003c/code\u003e. Stubbed timeouts now provide an \u003ccode\u003eeffective_url\u003c/code\u003e too.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tbrammar\"\u003eTom Brammar\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect removal of default ports from displayed URLs\u003c/p\u003e\n\u003cp\u003eWebMock could accidentally remove \u003ccode\u003e:80\u003c/code\u003e or \u003ccode\u003e:443\u003c/code\u003e from a URL's path or query. For example, an error message could show \u003ccode\u003e/foo/bar\u003c/code\u003e instead of \u003ccode\u003e/foo:80/bar\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/11392e455b9ee025b72cbebcaaa9e0a9f201bac0\"\u003e\u003ccode\u003e11392e4\u003c/code\u003e\u003c/a\u003e Version 3.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/eabc1513f3223bbd13ede8db8f57557f90529028\"\u003e\u003ccode\u003eeabc151\u003c/code\u003e\u003c/a\u003e Close the gaps a review found in the Rack env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/38f08be5520864ab88218ff67ac712720403ba00\"\u003e\u003ccode\u003e38f08be\u003c/code\u003e\u003c/a\u003e Make the Rack env for to_rack apps follow the Rack spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/732328be7250ea5a3ae1448c5417ff04dcaf4a2c\"\u003e\u003ccode\u003e732328b\u003c/code\u003e\u003c/a\u003e Tidy the Rack host fallback and its specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/3d831ce639f5889ed1f440aa3932e81b8c21a4f0\"\u003e\u003ccode\u003e3d831ce\u003c/code\u003e\u003c/a\u003e Set HTTP_HOST in the Rack env instead of the Net::HTTP signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/aa71fc158488e99e4e64a6f11d5007386fc9b70e\"\u003e\u003ccode\u003eaa71fc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e from benoittgt/prevent-empty-host\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5fbb394ac6fadeba50e5b23ebbd152c6904e92ec\"\u003e\u003ccode\u003e5fbb394\u003c/code\u003e\u003c/a\u003e Reject query :any with a URI query and accept anything matchers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/d94e918ca65145154fd273fac6dc78815292d530\"\u003e\u003ccode\u003ed94e918\u003c/code\u003e\u003c/a\u003e Reject unsupported query options and describe :any as anything\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/0b56b627b323fd78e0ab5e63a404d7027b364706\"\u003e\u003ccode\u003e0b56b62\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e from nightpool/add-any-query-option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/78d1078486c38cf89b1364297f4f8531f1f8f72f\"\u003e\u003ccode\u003e78d1078\u003c/code\u003e\u003c/a\u003e Version 3.33.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.4...v3.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Borussia80/Klipper/pull/139","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borussia80%2FKlipper/issues/139","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/139/packages"},{"uuid":"5855641140","node_id":"PR_kwDOMqZhsc8AAAABIfJqbw","number":231,"state":"closed","title":"Bump the production-dependencies group with 59 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-14T21:04:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-14T21:04:33.000Z","updated_at":"2026-10-14T21:04:57.000Z","time_to_close":14,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":59,"packages":[{"name":"acme-client","old_version":"2.0.26","new_version":"2.0.35","repository_url":"https://github.com/unixcharles/acme-client"},{"name":"argon2-kdf","old_version":"0.3.1","new_version":"1.0.0","repository_url":"https://github.com/ankane/argon2-kdf"},{"name":"cgi","old_version":"0.5.1","new_version":"0.5.2","repository_url":"https://github.com/ruby/cgi"},{"name":"google-apis-cloudresourcemanager_v3","old_version":"0.61.0","new_version":"0.65.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-iam_v1","old_version":"0.85.0","new_version":"0.92.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-cloud-compute-v1","old_version":"3.5.0","new_version":"3.12.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-cloud-storage","old_version":"1.59.0","new_version":"1.62.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"committee","old_version":"5.6.1","new_version":"5.6.4","repository_url":"https://github.com/interagent/committee"},{"name":"excon","old_version":"1.6.0","new_version":"1.7.2","repository_url":"https://github.com/excon/excon"},{"name":"jwt","old_version":"3.2.0","new_version":"3.3.0","repository_url":"https://github.com/jwt/ruby-jwt"},{"name":"mail","old_version":"2.9.0","new_version":"2.9.1","repository_url":"https://github.com/mikel/mail"},{"name":"net-ssh","old_version":"7.3.2","new_version":"7.3.3","repository_url":"https://github.com/net-ssh/net-ssh"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"rake","old_version":"13.3.1","new_version":"13.4.2","repository_url":"https://github.com/ruby/rake"},{"name":"roda","old_version":"3.103.0","new_version":"3.108.0","repository_url":"https://github.com/jeremyevans/roda"},{"name":"rodauth","old_version":"2.43.0","new_version":"2.48.0","repository_url":"https://github.com/jeremyevans/rodauth"},{"name":"sentry-ruby","old_version":"6.6.0","new_version":"7.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sequel","old_version":"5.103.0","new_version":"5.108.0","repository_url":"https://github.com/jeremyevans/sequel"},{"name":"sequel_pg","old_version":"1.19.0","new_version":"1.20.0","repository_url":"https://github.com/jeremyevans/sequel_pg"},{"name":"stripe","old_version":"18.4.0","new_version":"19.6.2","repository_url":"https://github.com/stripe/stripe-ruby"},{"name":"tilt","old_version":"2.6.1","new_version":"2.9.0","repository_url":"https://github.com/jeremyevans/tilt"},{"name":"warning","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/jeremyevans/ruby-warning"},{"name":"cbor","old_version":"0.5.10.1","new_version":"0.5.10.3"},{"name":"concurrent-ruby","old_version":"1.3.7","new_version":"1.3.8","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"csv","old_version":"3.3.5","new_version":"3.3.6","repository_url":"https://github.com/ruby/csv"},{"name":"date","old_version":"3.5.1","new_version":"3.6.0","repository_url":"https://github.com/ruby/date"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"ffi-compiler","old_version":"1.3.2","new_version":"1.4.2","repository_url":"https://github.com/ffi/ffi-compiler"},{"name":"gapic-common","old_version":"1.3.0","new_version":"1.5.1","repository_url":"https://github.com/googleapis/ruby-core-libraries"},{"name":"google-apis-core","old_version":"1.0.2","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-iamcredentials_v1","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-storage_v1","old_version":"0.61.0","new_version":"0.69.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-cloud-common","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"google-cloud-core","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-cloud-env","old_version":"2.3.1","new_version":"2.4.1","repository_url":"https://github.com/googleapis/ruby-cloud-env"},{"name":"google-cloud-errors","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-protobuf","old_version":"4.34.1","new_version":"4.36.2","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"googleapis-common-protos","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"googleapis-common-protos-types","old_version":"1.22.0","new_version":"1.23.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"googleauth","old_version":"1.16.2","new_version":"1.17.5","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"grpc","old_version":"1.80.0","new_version":"1.84.0","repository_url":"https://github.com/google/grpc"},{"name":"io-console","old_version":"0.8.2","new_version":"0.9.4","repository_url":"https://github.com/ruby/io-console"},{"name":"json","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/ruby/json"},{"name":"multi_json","old_version":"1.20.0","new_version":"1.21.2","repository_url":"https://github.com/sferik/multi_json"},{"name":"net-http","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/ruby/net-http"},{"name":"net-imap","old_version":"0.6.4.1","new_version":"0.6.8","repository_url":"https://github.com/ruby/net-imap"},{"name":"net-protocol","old_version":"0.2.2","new_version":"0.4.0","repository_url":"https://github.com/ruby/net-protocol"},{"name":"net-smtp","old_version":"0.5.1","new_version":"0.5.2","repository_url":"https://github.com/ruby/net-smtp"},{"name":"omniauth-oauth2","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/omniauth/omniauth-oauth2"},{"name":"openssl","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/ruby/openssl"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"rack","old_version":"3.2.6","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"reline","old_version":"0.6.3","new_version":"0.7.0","repository_url":"https://github.com/ruby/reline"},{"name":"representable","old_version":"3.2.0","new_version":"3.3.1","repository_url":"https://github.com/trailblazer/representable"},{"name":"retriable","old_version":"3.4.1","new_version":"4.2.0","repository_url":"https://github.com/kamui/retriable"},{"name":"signet","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/googleapis/signet"},{"name":"tpm-key_attestation","old_version":"0.14.1","new_version":"0.14.2","repository_url":"https://github.com/cedarcode/tpm-key_attestation"},{"name":"uri","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/ruby/uri"},{"name":"version_gem","old_version":"1.1.14","new_version":"1.1.15","repository_url":"https://github.com/ruby-oauth/version_gem"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the production-dependencies group with 59 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [acme-client](https://github.com/unixcharles/acme-client) | `2.0.26` | `2.0.35` |\n| [argon2-kdf](https://github.com/ankane/argon2-kdf) | `0.3.1` | `1.0.0` |\n| [cgi](https://github.com/ruby/cgi) | `0.5.1` | `0.5.2` |\n| [google-apis-cloudresourcemanager_v3](https://github.com/googleapis/google-api-ruby-client) | `0.61.0` | `0.65.0` |\n| [google-apis-iam_v1](https://github.com/googleapis/google-api-ruby-client) | `0.85.0` | `0.92.0` |\n| [google-cloud-compute-v1](https://github.com/googleapis/google-cloud-ruby) | `3.5.0` | `3.12.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-ruby) | `1.59.0` | `1.62.0` |\n| [committee](https://github.com/interagent/committee) | `5.6.1` | `5.6.4` |\n| [excon](https://github.com/excon/excon) | `1.6.0` | `1.7.2` |\n| [jwt](https://github.com/jwt/ruby-jwt) | `3.2.0` | `3.3.0` |\n| [mail](https://github.com/mikel/mail) | `2.9.0` | `2.9.1` |\n| [net-ssh](https://github.com/net-ssh/net-ssh) | `7.3.2` | `7.3.3` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.3` |\n| [rake](https://github.com/ruby/rake) | `13.3.1` | `13.4.2` |\n| [roda](https://github.com/jeremyevans/roda) | `3.103.0` | `3.108.0` |\n| [rodauth](https://github.com/jeremyevans/rodauth) | `2.43.0` | `2.48.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.6.0` | `7.1.0` |\n| [sequel](https://github.com/jeremyevans/sequel) | `5.103.0` | `5.108.0` |\n| [sequel_pg](https://github.com/jeremyevans/sequel_pg) | `1.19.0` | `1.20.0` |\n| [stripe](https://github.com/stripe/stripe-ruby) | `18.4.0` | `19.6.2` |\n| [tilt](https://github.com/jeremyevans/tilt) | `2.6.1` | `2.9.0` |\n| [warning](https://github.com/jeremyevans/ruby-warning) | `1.5.0` | `1.6.0` |\n| [cbor](http://cbor.io/) | `0.5.10.1` | `0.5.10.3` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.7` | `1.3.8` |\n| [csv](https://github.com/ruby/csv) | `3.3.5` | `3.3.6` |\n| [date](https://github.com/ruby/date) | `3.5.1` | `3.6.0` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [ffi-compiler](https://github.com/ffi/ffi-compiler) | `1.3.2` | `1.4.2` |\n| [gapic-common](https://github.com/googleapis/ruby-core-libraries) | `1.3.0` | `1.5.1` |\n| [google-apis-core](https://github.com/googleapis/google-api-ruby-client) | `1.0.2` | `1.3.1` |\n| [google-apis-iamcredentials_v1](https://github.com/googleapis/google-api-ruby-client) | `0.26.0` | `0.28.0` |\n| [google-apis-storage_v1](https://github.com/googleapis/google-api-ruby-client) | `0.61.0` | `0.69.0` |\n| [google-cloud-common](https://github.com/googleapis/common-protos-ruby) | `1.9.0` | `1.10.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-ruby) | `1.8.0` | `1.9.0` |\n| [google-cloud-env](https://github.com/googleapis/ruby-cloud-env) | `2.3.1` | `2.4.1` |\n| [google-cloud-errors](https://github.com/googleapis/google-cloud-ruby) | `1.6.0` | `1.7.0` |\n| [google-protobuf](https://github.com/protocolbuffers/protobuf) | `4.34.1` | `4.36.2` |\n| [googleapis-common-protos](https://github.com/googleapis/common-protos-ruby) | `1.9.0` | `1.10.0` |\n| [googleapis-common-protos-types](https://github.com/googleapis/common-protos-ruby) | `1.22.0` | `1.23.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.16.2` | `1.17.5` |\n| [grpc](https://github.com/google/grpc) | `1.80.0` | `1.84.0` |\n| [io-console](https://github.com/ruby/io-console) | `0.8.2` | `0.9.4` |\n| [json](https://github.com/ruby/json) | `2.21.1` | `2.21.2` |\n| [multi_json](https://github.com/sferik/multi_json) | `1.20.0` | `1.21.2` |\n| [net-http](https://github.com/ruby/net-http) | `0.9.1` | `0.10.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.6.4.1` | `0.6.8` |\n| [net-protocol](https://github.com/ruby/net-protocol) | `0.2.2` | `0.4.0` |\n| [net-smtp](https://github.com/ruby/net-smtp) | `0.5.1` | `0.5.2` |\n| [omniauth-oauth2](https://github.com/omniauth/omniauth-oauth2) | `1.8.0` | `1.9.0` |\n| [openssl](https://github.com/ruby/openssl) | `4.0.1` | `4.0.2` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [rack](https://github.com/rack/rack) | `3.2.6` | `3.2.7` |\n| [reline](https://github.com/ruby/reline) | `0.6.3` | `0.7.0` |\n| [representable](https://github.com/trailblazer/representable) | `3.2.0` | `3.3.1` |\n| [retriable](https://github.com/kamui/retriable) | `3.4.1` | `4.2.0` |\n| [signet](https://github.com/googleapis/signet) | `0.21.0` | `0.22.1` |\n| [tpm-key_attestation](https://github.com/cedarcode/tpm-key_attestation) | `0.14.1` | `0.14.2` |\n| [uri](https://github.com/ruby/uri) | `1.1.1` | `1.1.2` |\n| [version_gem](https://github.com/ruby-oauth/version_gem) | `1.1.14` | `1.1.15` |\n\nUpdates `acme-client` from 2.0.26 to 2.0.35\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/unixcharles/acme-client/blob/master/CHANGELOG.md\"\u003eacme-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.35\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose the RFC 8555 order \u003ccode\u003eerror\u003c/code\u003e field on \u003ccode\u003eResources::Order#error\u003c/code\u003e and add \u003ccode\u003eOrder#typed_error\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.34\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd badAttestationStatement error\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.33\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eAcme::Client::Problem\u003c/code\u003e for structured RFC 7807 / RFC 8555 ACME problem documents\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003eAcme::Client::Error#problem\u003c/code\u003e and problem field accessors while keeping \u003ccode\u003e#acme_error_body\u003c/code\u003e behavior\u003c/li\u003e\n\u003cli\u003eAdd typed error mappings for all currently registered IANA ACME error types and verify them against IANA's CSV registry\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.32\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003evalid_ip_address?\u003c/code\u003e method definition. Was mistakenly defined on Object instead of \u003ccode\u003eAcme::Client::CertificateRequest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.31\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose Retry-After header on all\u003c/li\u003e\n\u003cli\u003eARI improvement\u003c/li\u003e\n\u003cli\u003eExpose full error message on Error#acme_error_body\u003c/li\u003e\n\u003cli\u003eExpose error subproblems (RFC7807) on Error#subproblems\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.30\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a default message to RateLimited error\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis fix avoid argument error on RateLimited object when stubbing without passing arguments.\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.29\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIP support to the CertificateRequest helper\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.28\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc8555/#section-6.6\"\u003eRetry-After\u003c/a\u003e accessible from RateLimited#retry_after exceptions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.27\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Renewal Information (ARI) (RFC 9773)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/a4328f15c3d3400bcfa714b799280d0d2365d047\"\u003e\u003ccode\u003ea4328f1\u003c/code\u003e\u003c/a\u003e bump to 2.0.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/63a0445c07c13a4f59dee874ffc467937bc3f08e\"\u003e\u003ccode\u003e63a0445\u003c/code\u003e\u003c/a\u003e Expose the order error field and add Order#typed_error (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/710ba1719e2f29ceee6c9a8766b340515abda5fe\"\u003e\u003ccode\u003e710ba17\u003c/code\u003e\u003c/a\u003e Bump actions/github-script from 7 to 9 (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/cbadbf58e29ee68b2c5953963142fdb0b536c022\"\u003e\u003ccode\u003ecbadbf5\u003c/code\u003e\u003c/a\u003e Split IANA ACME error registry check into its own weekly job (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/44aed48d50e6ad9d8362d2df6a6a7ce287fe5097\"\u003e\u003ccode\u003e44aed48\u003c/code\u003e\u003c/a\u003e Bump to 2.0.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/abb3fbad062a6f10de2f9ac351d56c5f770bb6a7\"\u003e\u003ccode\u003eabb3fba\u003c/code\u003e\u003c/a\u003e Add support for badAttestationStatement error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/d78e23042a0f5a94c702ab12c4d5dfa27efec97d\"\u003e\u003ccode\u003ed78e230\u003c/code\u003e\u003c/a\u003e bump to 33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/7e7b57279bcb7b3599051fd84e44a2deea85b245\"\u003e\u003ccode\u003e7e7b572\u003c/code\u003e\u003c/a\u003e Add structured ACME problem documents (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/bdd991ec25a6276f9cbe06532e7e7bfe40ae722f\"\u003e\u003ccode\u003ebdd991e\u003c/code\u003e\u003c/a\u003e Restore TruffleRuby on CI (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/38427fc656810d7d25ce80918dbd5bb76c9a96ef\"\u003e\u003ccode\u003e38427fc\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/unixcharles/acme-client/compare/v2.0.26...v2.0.35\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-kdf` from 0.3.1 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/argon2-kdf/blob/master/CHANGELOG.md\"\u003eargon2-kdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.0 (2026-04-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/0badcb535f98fa10acf692137e3cf8601c1d6f01\"\u003e\u003ccode\u003e0badcb5\u003c/code\u003e\u003c/a\u003e Version bump to 1.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/d7047beb07a83a79b8bf1ae4bc96561865036a8f\"\u003e\u003ccode\u003ed7047be\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/60117d75d6232cdf43fcb7f58d17dc3d8d8caa87\"\u003e\u003ccode\u003e60117d7\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/db0c97ad6806430ef1af3e7fcaf34537d1c1b288\"\u003e\u003ccode\u003edb0c97a\u003c/code\u003e\u003c/a\u003e Updated CI [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/9dd49b0133e590f039fe4dfa0dbde9e623491411\"\u003e\u003ccode\u003e9dd49b0\u003c/code\u003e\u003c/a\u003e Added ruby_memcheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/d109bd19c07c7a1df5fb8b4dd9d7bd3c7c1e67d5\"\u003e\u003ccode\u003ed109bd1\u003c/code\u003e\u003c/a\u003e Fixed warning [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/2697dd8cfefacdbd059d01866a0467e4a8c8fb65\"\u003e\u003ccode\u003e2697dd8\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/83e5ce84edb6a88b484187cae45fa8bea10de972\"\u003e\u003ccode\u003e83e5ce8\u003c/code\u003e\u003c/a\u003e Updated test setup [skip ci]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ankane/argon2-kdf/compare/v0.3.1...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cgi` from 0.5.1 to 0.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/cgi/releases\"\u003ecgi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove readme copy/paste + update URLs to HTTPS by \u003ca href=\"https://github.com/tas50\"\u003e\u003ccode\u003e@​tas50\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/101\"\u003eruby/cgi#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd changelog URI to cgi.gemspec metadata by \u003ca href=\"https://github.com/phallstrom\"\u003e\u003ccode\u003e@​phallstrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/105\"\u003eruby/cgi#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix escape_html/h aliases to use C extension instead of pure Ruby fallback by \u003ca href=\"https://github.com/ianks\"\u003e\u003ccode\u003e@​ianks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/110\"\u003eruby/cgi#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] More on CGI.new by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/95\"\u003eruby/cgi#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Doc for CGI#http_header by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/98\"\u003eruby/cgi#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Doc for accept_charset and accept_charset= by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/97\"\u003eruby/cgi#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Fix examples in accept_charset and http_header docs by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/125\"\u003eruby/cgi#125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 'digest' option by \u003ca href=\"https://github.com/nobu\"\u003e\u003ccode\u003e@​nobu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/62\"\u003eruby/cgi#62\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle POST without Content-Length by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/126\"\u003eruby/cgi#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CGI.unescapeHTML CompatibilityError in the pure-Ruby fallback by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/127\"\u003eruby/cgi#127\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tas50\"\u003e\u003ccode\u003e@​tas50\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/101\"\u003eruby/cgi#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phallstrom\"\u003e\u003ccode\u003e@​phallstrom\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/105\"\u003eruby/cgi#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ianks\"\u003e\u003ccode\u003e@​ianks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/110\"\u003eruby/cgi#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\"\u003ehttps://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/bbfac8902e82e5419a7bdb62512aa68bfafa7979\"\u003e\u003ccode\u003ebbfac89\u003c/code\u003e\u003c/a\u003e v0.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/09970b06d3286108a885a459c5fe078565b960fb\"\u003e\u003ccode\u003e09970b0\u003c/code\u003e\u003c/a\u003e Fix unescapeHTML CompatibilityError in pure-Ruby fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/23f26a07db459197a4b7d2212f3c53f17e246e22\"\u003e\u003ccode\u003e23f26a0\u003c/code\u003e\u003c/a\u003e Handle POST without Content-Length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/2af5afaaf1de421659db4d9b107dc47fd461d6aa\"\u003e\u003ccode\u003e2af5afa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elength\u003c/code\u003e option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/128feb5fb6eed9ae490123897f7661518199a301\"\u003e\u003ccode\u003e128feb5\u003c/code\u003e\u003c/a\u003e Improve tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/bff5bbb109f0f5de5aa70bf6681de693ed96f7fe\"\u003e\u003ccode\u003ebff5bbb\u003c/code\u003e\u003c/a\u003e Allow digest classes as the digest for store path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/5e979c426dce2b71b310d520198b502ee4162012\"\u003e\u003ccode\u003e5e979c4\u003c/code\u003e\u003c/a\u003e Add 'digest' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/240684037a340f92f404ed7f020243e1562a098b\"\u003e\u003ccode\u003e2406840\u003c/code\u003e\u003c/a\u003e Separate each test methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/3ef24099e573a22d104bff4ad9ff4fa2126ee769\"\u003e\u003ccode\u003e3ef2409\u003c/code\u003e\u003c/a\u003e [DOC] Fix wording in CGI#http_header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/3ca9d12c818f86e342e78c14387bc1e76fa24c69\"\u003e\u003ccode\u003e3ca9d12\u003c/code\u003e\u003c/a\u003e [DOC] Fix accept_charset default value in examples\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-cloudresourcemanager_v3` from 0.61.0 to 0.65.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-cloudresourcemanager_v3/CHANGELOG.md\"\u003egoogle-apis-cloudresourcemanager_v3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.65.0 (2026-09-20)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260909\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.64.0 (2026-09-06)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260820\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.63.0 (2026-08-09)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260715\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.62.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-iam_v1` from 0.85.0 to 0.92.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-iam_v1/CHANGELOG.md\"\u003egoogle-apis-iam_v1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.92.0 (2026-09-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260918\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.91.0 (2026-09-06)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260828\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.90.0 (2026-08-16)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260807\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.89.0 (2026-08-02)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260724\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.88.0 (2026-07-12)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260702\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.87.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.86.0 (2026-04-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260320\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute-v1` from 3.5.0 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/baa4c47b4c785ade23d1051f702e2451c2264f9a\"\u003e\u003ccode\u003ebaa4c47\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36601\"\u003e#36601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/e3742443b16b54b93fee0aa3585d6079f99b8505\"\u003e\u003ccode\u003ee374244\u003c/code\u003e\u003c/a\u003e ci: configure tagPullRequestNumber and disable separate-pull-requests (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36600\"\u003e#36600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/13e3ae1b4bd445b852bfe40978ebdd7f7f26fbdd\"\u003e\u003ccode\u003e13e3ae1\u003c/code\u003e\u003c/a\u003e feat(google-cloud-backupdr-v1beta): onboard google/cloud/backupdr/v1beta API ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/859439933019bcb37e10b3338015d5a511d8211e\"\u003e\u003ccode\u003e8594399\u003c/code\u003e\u003c/a\u003e feat!: Replace google-cloud-automl-v1beta1 with a tombstone (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36594\"\u003e#36594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/54c339be271aad1876ff294fa1e73379f8d946c2\"\u003e\u003ccode\u003e54c339b\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-app_topology 0.1.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36595\"\u003e#36595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/2247ffcbca28fd475b1e2130f1dc6f949630cab5\"\u003e\u003ccode\u003e2247ffc\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-app_topology-v1 0.1.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36596\"\u003e#36596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/8627c2db130a02231370d024271b146fd13c6324\"\u003e\u003ccode\u003e8627c2d\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-api_gateway-v1 2.7.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36578\"\u003e#36578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/98bcaf7288409e33b9441da6749506ebfa568f2e\"\u003e\u003ccode\u003e98bcaf7\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-kms-v1 1.16.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36587\"\u003e#36587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/57146d7431230a7f003ae4f0c8701f5163af5e26\"\u003e\u003ccode\u003e57146d7\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-automl 3.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36597\"\u003e#36597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/16052e08f7d1de238ba21fb29f90181fd78a9818\"\u003e\u003ccode\u003e16052e0\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-automl-v1 2.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36599\"\u003e#36599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/compare/google-cloud-compute-v1/v3.5.0...google-cloud-compute-v1/v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 1.59.0 to 1.62.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage-control-v2: v1.14.1\u003c/h2\u003e\n\u003ch3\u003e1.14.1 (2026-09-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eprepare release google-cloud-storage-control-v2 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36470\"\u003e#36470\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/0e9b4eaaa83a714ed7742a031c065488a59cddd8\"\u003e\u003ccode\u003e0e9b4ea\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-storage 1.62.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34613\"\u003e#34613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/fc533428a0a3ce0db77af4859c9c9762e120e22a\"\u003e\u003ccode\u003efc53342\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-maps-isochrones (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34700\"\u003e#34700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/0c3666380c5d2e984a3b8538b0a9b143ad339525\"\u003e\u003ccode\u003e0c36663\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-cloud-network_security-v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34693\"\u003e#34693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/dabbf4397c5fb90b9066c1d276ed0f5f2b2c9a38\"\u003e\u003ccode\u003edabbf43\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-maps-isochrones-v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34698\"\u003e#34698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/c7afd52849b6d661aa79febad251f64a57445203\"\u003e\u003ccode\u003ec7afd52\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-ces-v1beta 0.3.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34697\"\u003e#34697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/50d9c3526fffc735830709b3c105605acb27f6aa\"\u003e\u003ccode\u003e50d9c35\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-ces-v1 0.2.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34696\"\u003e#34696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/1f3c42951c4662cf688cd9e58cf48af4490d18df\"\u003e\u003ccode\u003e1f3c429\u003c/code\u003e\u003c/a\u003e fix: add routing annotations to BidiRunSession in v1 and v1beta (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34694\"\u003e#34694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/22d231d60a30114bef769d9ec673971308bf3b59\"\u003e\u003ccode\u003e22d231d\u003c/code\u003e\u003c/a\u003e fix: add routing annotations to BidiRunSession in v1 and v1beta (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34695\"\u003e#34695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/b9f72ad0c8c4ec26bbe9d2312f170772606aea5b\"\u003e\u003ccode\u003eb9f72ad\u003c/code\u003e\u003c/a\u003e chore(main): release stackdriver 1.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34663\"\u003e#34663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/9f5a31edc77fc5d1d711cea409088fd0066e4c87\"\u003e\u003ccode\u003e9f5a31e\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-datastore-v1 1.8.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34684\"\u003e#34684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/compare/google-cloud-storage/v1.59.0...google-cloud-storage/v1.62.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `committee` from 5.6.1 to 5.6.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/interagent/committee/blob/master/CHANGELOG.md\"\u003ecommittee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.4 - 2026-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebump actions/checkout from 6 to 7 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/475\"\u003e#475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprove code quality \u003ca href=\"https://redirect.github.com/interagent/committee/issues/476\"\u003e#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd strict_response_content_type to ResponseValidation middleware \u003ca href=\"https://redirect.github.com/interagent/committee/issues/478\"\u003e#478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump sqlite3 in example to clear security warning \u003ca href=\"https://redirect.github.com/interagent/committee/issues/480\"\u003e#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpose matched operation on SchemaValidator::OpenAPI3 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/479\"\u003e#479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprevent path params from masking invalid query params \u003ca href=\"https://redirect.github.com/interagent/committee/issues/481\"\u003e#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate openapi 2 responses against status-specific schemas \u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreserve one-shot response bodies after validation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate each test request against in's operation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.3 - 2026-04-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eclarify OpenAPI 3 coerce_form_params behavior \u003ca href=\"https://redirect.github.com/interagent/committee/issues/471\"\u003e#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport bracket-style OpenAPI 3 query params \u003ca href=\"https://redirect.github.com/interagent/committee/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eincrement Minitest assertion count in assert_schema_conform methods \u003ca href=\"https://redirect.github.com/interagent/committee/issues/473\"\u003e#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix parsing of +json response content types \u003ca href=\"https://redirect.github.com/interagent/committee/issues/474\"\u003e#474\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.2 - 2026-03-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate .ruby-version to latest tested \u003ca href=\"https://redirect.github.com/interagent/committee/issues/456\"\u003e#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump actions/checkout from 5 to 6 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/457\"\u003e#457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd ydah to contributors list \u003ca href=\"https://redirect.github.com/interagent/committee/issues/458\"\u003e#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd coerce_response_values option to enable type coercion in response validation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/461\"\u003e#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove response validation logic from middleware to validator classes \u003ca href=\"https://redirect.github.com/interagent/committee/issues/462\"\u003e#462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd OpenAPI 3 parameter deserialization with style/explode support \u003ca href=\"https://redirect.github.com/interagent/committee/issues/460\"\u003e#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd more straightforward options by type \u003ca href=\"https://redirect.github.com/interagent/committee/issues/463\"\u003e#463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd strict mode support for query parameters \u003ca href=\"https://redirect.github.com/interagent/committee/issues/464\"\u003e#464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd except option for testing error responses \u003ca href=\"https://redirect.github.com/interagent/committee/issues/465\"\u003e#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix OpenAPI schema cache collision by including schema_path in cache key \u003ca href=\"https://redirect.github.com/interagent/committee/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix OpenAPI 3 path coercion to respect coerce_path_params independently of query coercion \u003ca href=\"https://redirect.github.com/interagent/committee/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix prefix matching to respect path segment boundaries \u003ca href=\"https://redirect.github.com/interagent/committee/issues/468\"\u003e#468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Ruby 4.0 to CI configuration and update README for supported versions \u003ca href=\"https://redirect.github.com/interagent/committee/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/c2e259be56068d451c318c3a9fe61b581720af8a\"\u003e\u003ccode\u003ec2e259b\u003c/code\u003e\u003c/a\u003e v5.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/f96455391a91a4c9e423e902318ffc37c06c4deb\"\u003e\u003ccode\u003ef964553\u003c/code\u003e\u003c/a\u003e Validate each test request against its operation (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/b3935afb95fda807f4d7f9e63be276ee6ed1be22\"\u003e\u003ccode\u003eb3935af\u003c/code\u003e\u003c/a\u003e Preserve one-shot response bodies after validation (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/736a7fe24b4b901b66d3458cc61049eda6a62927\"\u003e\u003ccode\u003e736a7fe\u003c/code\u003e\u003c/a\u003e Validate OpenAPI 2 responses against status-specific schemas (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/3c61e6688273d6abe7c292171722b880d99a0c7a\"\u003e\u003ccode\u003e3c61e66\u003c/code\u003e\u003c/a\u003e Prevent path parameters from masking invalid query parameters (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/0d6d1117fcc941667dbf7d4af388a75e47c3937e\"\u003e\u003ccode\u003e0d6d111\u003c/code\u003e\u003c/a\u003e Expose the matched operation on SchemaValidator::OpenAPI3 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/663268faf68ca53a4bfaba3d961acebfd9071877\"\u003e\u003ccode\u003e663268f\u003c/code\u003e\u003c/a\u003e bump sqlite3 in example to non-vulnerable one to clear security warning (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/0c79077e734f9cf839f7596302ad22302d4306c7\"\u003e\u003ccode\u003e0c79077\u003c/code\u003e\u003c/a\u003e Add strict_response_content_type option to ResponseValidation middleware (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/77a8251d379321c938c673fc7d810048d2a562af\"\u003e\u003ccode\u003e77a8251\u003c/code\u003e\u003c/a\u003e Improve code quality: auto-pr/docstrings-1782127864 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/5412a705a34533a394585c6cfd5632b223b2c8dd\"\u003e\u003ccode\u003e5412a70\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/interagent/committee/compare/v5.6.1...v5.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `excon` from 1.6.0 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/excon/excon/blob/master/changelog.txt\"\u003eexcon's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.7.2 2026-09-28\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdated bundled certs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.7.1 2026-08-28\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdated bundled certs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.7.0 2026-08-06\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdate bundled certs\u003c/li\u003e\n\u003cli\u003euse weak keys for socket cache to improve memory usage\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/920d5e8a3d880f28cff338466349fb7ee27f29e8\"\u003e\u003ccode\u003e920d5e8\u003c/code\u003e\u003c/a\u003e v1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/ee10e3617affa55af3457338ccae12180ab3d76f\"\u003e\u003ccode\u003eee10e36\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/b6ca2879961d04f8de520c4b740db6aca4fdb48a\"\u003e\u003ccode\u003eb6ca287\u003c/code\u003e\u003c/a\u003e v1.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/18ec428add3913d0b5da459decbd46e24e17f797\"\u003e\u003ccode\u003e18ec428\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/ac022b6417d71b783b1f64cdb577968cb015e44f\"\u003e\u003ccode\u003eac022b6\u003c/code\u003e\u003c/a\u003e v1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/e39ec876fb9102d02a9cc5813282b96052e6d2a2\"\u003e\u003ccode\u003ee39ec87\u003c/code\u003e\u003c/a\u003e Use weak keys for thread-safe socket caches (\u003ca href=\"https://redirect.github.com/excon/excon/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/bde847ab9ea6505c3d3d9cbc2aaaa8465de3a13f\"\u003e\u003ccode\u003ebde847a\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/excon/excon/compare/v1.6.0...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jwt` from 3.2.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md\"\u003ejwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/tree/v3.3.0\"\u003ev3.3.0\u003c/a\u003e (2026-09-11)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/compare/v3.2.0...v3.3.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a leeway to be given for the \u003ccode\u003eiat\u003c/code\u003e claim verification \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/747\"\u003e#747\u003c/a\u003e - (\u003ca href=\"https://github.com/denis1011101\"\u003e\u003ccode\u003e@​denis1011101\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevamp the error hierarchy under a new \u003ccode\u003eJWT::Error\u003c/code\u003e base class; signing failures now consistently raise \u003ccode\u003eJWT::EncodeError\u003c/code\u003e, see \u003ca href=\"https://github.com/jwt/ruby-jwt/blob/main/UPGRADING.md\"\u003ehttps://github.com/jwt/ruby-jwt/blob/main/UPGRADING.md\u003c/a\u003e \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/722\"\u003e#722\u003c/a\u003e (\u003ca href=\"https://github.com/anakinj\"\u003e\u003ccode\u003e@​anakinj\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixes and enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor \u003ccode\u003eJWT::JWK::Set#initialize\u003c/code\u003e so each construction path is a named method \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/758\"\u003e#758\u003c/a\u003e (\u003ca href=\"https://github.com/anakinj\"\u003e\u003ccode\u003e@​anakinj\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix rejection of unknown algorithms from JWKs for RFC compliance and pquip \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e RuboCop offense failing the build \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eJWT::JWK::Set\u003c/code\u003e sharing its key collection with the set it was copied from \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/751\"\u003e#751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset the decoded payload and verification state in \u003ccode\u003eJWT::EncodedToken#encoded_payload=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eJWT::Token#detach_payload!\u003c/code\u003e not invalidating an already rendered token \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/748\"\u003e#748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/ccf24892fec805ecd64fec820fd4d2825b5a1267\"\u003e\u003ccode\u003eccf2489\u003c/code\u003e\u003c/a\u003e Prepare the v3.3.0 release (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/6cdacc377788b658a7a80609dc62ea0a8d717d14\"\u003e\u003ccode\u003e6cdacc3\u003c/code\u003e\u003c/a\u003e Enforce parentheses on method calls with arguments (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/4a576f887542aaaa5dd73d483e11003bc46f2230\"\u003e\u003ccode\u003e4a576f8\u003c/code\u003e\u003c/a\u003e Declutter jwt_spec.rb (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/7ddcb0a38b5565bbdb229b77e3a7fc561bea084b\"\u003e\u003ccode\u003e7ddcb0a\u003c/code\u003e\u003c/a\u003e Fix the RSA-PSS guard skipping the whole jwt_spec file (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/7cede0c704c79e42272df8768b57cd6ec338d99e\"\u003e\u003ccode\u003e7cede0c\u003c/code\u003e\u003c/a\u003e Refactor JWT::JWK::Set#initialize (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/6ab1be795200609385d99fff32cb4d57a36d764b\"\u003e\u003ccode\u003e6ab1be7\u003c/code\u003e\u003c/a\u003e Revamp error hierarchy (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/41fbf31aa33ff363b447bd69d4f006cfaac4a062\"\u003e\u003ccode\u003e41fbf31\u003c/code\u003e\u003c/a\u003e Invalidate the rendered token when detaching the payload (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/757\"\u003e#757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/d8e231d5719a0fa9dbd9bf6cbb0778d926391c17\"\u003e\u003ccode\u003ed8e231d\u003c/code\u003e\u003c/a\u003e Reset verification state when replacing the encoded payload (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/c25fb5e2c0c03c4452bae9654c33a0549d3fc10e\"\u003e\u003ccode\u003ec25fb5e\u003c/code\u003e\u003c/a\u003e Fix JWT::JWK::Set sharing its key collection when copied (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/bec0ffdf187ad7bf337d542890328e33cf0ad583\"\u003e\u003ccode\u003ebec0ffd\u003c/code\u003e\u003c/a\u003e Isolate gem builds from release credentials (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jwt/ruby-jwt/compare/v3.2.0...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mail` from 2.9.0 to 2.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mikel/mail/releases\"\u003email's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Ruby 3.4 to CI matrix in GitHub Actions workflow by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1653\"\u003emikel/mail#1653\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove decoding of Q- and B-encoded strings by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1664\"\u003emikel/mail#1664\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump to 2.9.1 by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1665\"\u003emikel/mail#1665\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1653\"\u003emikel/mail#1653\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mikel/mail/compare/2.9.0...2.9.1\"\u003ehttps://github.com/mikel/mail/compare/2.9.0...2.9.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/d645d7b5b7d03218b0bc8971ef041c991a63f5f7\"\u003e\u003ccode\u003ed645d7b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1665\"\u003e#1665\u003c/a\u003e from mikel/tag-291\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/5c863ed0489571e7572669018739dc47ed1f9189\"\u003e\u003ccode\u003e5c863ed\u003c/code\u003e\u003c/a\u003e Bump to 2.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/14915fa4c5f30ade18f3745ecc6d5d141a48104d\"\u003e\u003ccode\u003e14915fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1664\"\u003e#1664\u003c/a\u003e from mikel/sec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/4eab5623419079d6b972f063f16b536c02ecee62\"\u003e\u003ccode\u003e4eab562\u003c/code\u003e\u003c/a\u003e Potential fix for pull request finding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/f9d59c2e447af42e2c3dec5a56b1bb25c7292859\"\u003e\u003ccode\u003ef9d59c2\u003c/code\u003e\u003c/a\u003e Improve decoding of Q- and B-encoded strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/f98fb653956d246661394b1e98cf6e77eb8dd0a0\"\u003e\u003ccode\u003ef98fb65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1653\"\u003e#1653\u003c/a\u003e from ydah/add-ci-matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/d9081000b1c3e9a07f2b58e0e6c0b8f360bc8c8f\"\u003e\u003ccode\u003ed908100\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI matrix in GitHub Actions workflow\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mikel/mail/compare/2.9.0...2.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `net-ssh` from 7.3.2 to 7.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt\"\u003enet-ssh's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 7.3.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport .pub file as IdentityFile to filter/prioritize agent keys (1Password SSH agent use case) \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/942\"\u003e#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix cert signing regression when using a .pub companion file without an agent \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unreadable .pub IdentityFile silently skipped instead of raising \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple UserKnownHostsFile entries (space-separated, matching ssh_config(5)) \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mutating ENV['HOME'] at require time \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/997\"\u003e#997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ED25519 loader with frozen string literals \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/995\"\u003e#995\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/b991e88de99f278d4779dc0a2b1ac4e3da9d07d3\"\u003e\u003ccode\u003eb991e88\u003c/code\u003e\u003c/a\u003e Update CHANGES.txt for 7.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/e7c4afca130151d313b7055de3327b196d87616a\"\u003e\u003ccode\u003ee7c4afc\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/96986680545bf940c7a22194d895da9fb13e4877\"\u003e\u003ccode\u003e9698668\u003c/code\u003e\u003c/a\u003e Fix rubocop offenses introduced by \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/951\"\u003e#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/4be06b027ae65aaf084e30a9c7bb424677fdef67\"\u003e\u003ccode\u003e4be06b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e from net-ssh/pub-key-identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/81b2e895c43bdc1ae756d9cd7c31e7a6bfe4da26\"\u003e\u003ccode\u003e81b2e89\u003c/code\u003e\u003c/a\u003e Fix rubocop offenses: hash brace spacing and empty block comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/60490dfb14640952acb948a1b07711c9833ec19b\"\u003e\u003ccode\u003e60490df\u003c/code\u003e\u003c/a\u003e Fix cert signing regression and unreadable .pub file error handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/11243f28e52fa89a0e689d517cc45c3274bfc5ba\"\u003e\u003ccode\u003e11243f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/951\"\u003e#951\u003c/a\u003e from usiegj00/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/491660fe59e43cb9e36180f9162f6fa87db6a117\"\u003e\u003ccode\u003e491660f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e from andrewdotn/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/6f01d9078da92e8765ae111a0482633ea19d0b71\"\u003e\u003ccode\u003e6f01d90\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/995\"\u003e#995\u003c/a\u003e from G-Rath/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/1aa9ea6bab9c01da137832395eba395340e6ab87\"\u003e\u003ccode\u003e1aa9ea6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/997\"\u003e#997\u003c/a\u003e from net-ssh/fix/remove-env-home-mutation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/net-ssh/net-ssh/compare/v7.3.2...v7.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify caller-supplied ID tokens against Google's published signing keys before trusting them. An ID token sent alongside a direct \u003ccode\u003eaccess_token\u003c/code\u003e callback was previously decoded without checking its signature, so \u003ccode\u003eextra.id_info\u003c/code\u003e and \u003ccode\u003eextra.id_token\u003c/code\u003e could be populated from a forged token. \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003einfo\u003c/code\u003e were never affected, as they come from the userinfo endpoint. A caller-supplied ID token genuinely issued by Google for the same user and a trusted client continues to be accepted after verification.\u003c/li\u003e\n\u003cli\u003eRequire a caller-supplied ID token to describe the same user as the access token it was sent with, by comparing the token's \u003ccode\u003esub\u003c/code\u003e against the userinfo subject. A verified signature only proves Google issued the token, not that it belongs to the person the access token identifies, so without this a genuine ID token for one user could be paired with an access token for another and leave \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003eextra.id_info\u003c/code\u003e describing different people. The \u003ccode\u003eat_hash\u003c/code\u003e claim is checked first as a fast path, and this subject check settles the cases \u003ccode\u003eat_hash\u003c/code\u003e cannot: tokens that omit the claim, and tokens whose \u003ccode\u003eat_hash\u003c/code\u003e is stale because the client refreshed its access token after sign-in. This check runs even when \u003ccode\u003eskip_info\u003c/code\u003e is set, as that option trims the auth hash rather than waiving verification.\u003c/li\u003e\n\u003cli\u003eThe bundled example app no longer disables TLS certificate verification. Anyone who copied that line into an application should remove it: it turns off certificate checking for every Faraday-based request in the process, not just the ones this gem makes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereset_jwks_cache!\u003c/code\u003e for clearing the cached Google signing keys between tests.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecached_jwks\u003c/code\u003e, the class-level fetch-and-cache primitive behind it, which takes the fetch itself as a block.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJWKS_URL\u003c/code\u003e, \u003ccode\u003eJWKS_CACHE_TTL\u003c/code\u003e, and \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e constants, and a \u003ccode\u003eJwksUnavailable\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eAn upper bound of \u003ccode\u003e\u0026lt; 4\u003c/code\u003e on the \u003ccode\u003ejwt\u003c/code\u003e dependency. This is precautionary rather than a response to a released version: it keeps a future major release from being picked up before it has been verified against this strategy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe fallback that placed the opaque access token in \u003ccode\u003eextra.id_token\u003c/code\u003e when no ID token was present. \u003ccode\u003eextra.id_token\u003c/code\u003e is now absent in that case rather than holding a value that was never an ID token. This was only reachable with \u003ccode\u003eskip_jwt\u003c/code\u003e set; without it the fallback raised instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore every credential field a caller supplies in a direct access-token callback apart from the access token itself and a verified ID token. \u003ccode\u003erefresh_token\u003c/code\u003e and token expiry in particular cannot be verified, so they are no longer carried through.\u003c/li\u003e\n\u003cli\u003eAvoid decoding opaque access tokens as JWTs when no ID token is available.\u003c/li\u003e\n\u003cli\u003eFail with a normal authentication failure when a callback carries no usable credential, such as an ID token with no access token, a JSON body that is not an object, or an unparseable body. Previously these raised a \u003ccode\u003eNoMethodError\u003c/code\u003e or \u003ccode\u003eTypeError\u003c/code\u003e that OmniAuth turned into a failure whose message was the raw Ruby error, so applications received an unstable \u003ccode\u003emessage\u003c/code\u003e parameter such as \u003ccode\u003eundefined method 'expired?'\u003c/code\u003e instead of \u003ccode\u003einvalid_credentials\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eServe the cached signing keys when Google's key endpoint is briefly unreachable, and back off before refetching, rather than retrying on every request, including when nothing is cached yet.\u003c/li\u003e\n\u003cli\u003eReject a signing key response that is not an object with a \u003ccode\u003ekeys\u003c/code\u003e array, rather than passing it on to be interpreted as some other kind of key.\u003c/li\u003e\n\u003cli\u003eCap how often an ID token naming an unrecognised key can force a key refresh, so it cannot be used to drive unbounded outbound requests while holding the shared cache lock. Key rotation still resolves within \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejwt_leeway\u003c/code\u003e now also applies when verifying caller-supplied ID tokens, matching how it already behaved for the \u003ccode\u003eextra\u003c/code\u003e block.\u003c/li\u003e\n\u003cli\u003eSupport non-rewindable JSON request bodies under Rack 3.\u003c/li\u003e\n\u003cli\u003eAccept ID tokens issued to any configured \u003ccode\u003eauthorized_client_ids\u003c/code\u003e, matching the audiences already accepted for access tokens.\u003c/li\u003e\n\u003cli\u003eReuse successfully verified ID token claims when building \u003ccode\u003eextra\u003c/code\u003e, so each ID token is decoded and validated only once per request.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3 - 2026-08-31\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify caller-supplied ID tokens against Google's published signing keys before trusting them. An ID token sent alongside a direct \u003ccode\u003eaccess_token\u003c/code\u003e callback was previously decoded without checking its signature, so \u003ccode\u003eextra.id_info\u003c/code\u003e and \u003ccode\u003eextra.id_token\u003c/code\u003e could be populated from a forged token. \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003einfo\u003c/code\u003e were never affected, as they come from the userinfo endpoint. A caller-supplied ID token genuinely issued by Google for the same user and a trusted client continues to be accepted after verification.\u003c/li\u003e\n\u003cli\u003eRequire a caller-supplied ID token to describe the same user as the access token it was sent with, by comparing the token's \u003ccode\u003esub\u003c/code\u003e against the userinfo subject. A verified signature only proves Google issued the token, not that it belongs to the person the access token identifies, so without this a genuine ID token for one user could be paired with an access token for another and leave \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003eextra.id_info\u003c/code\u003e describing different people. The \u003ccode\u003eat_hash\u003c/code\u003e claim is checked first as a fast path, and this subject check settles the cases \u003ccode\u003eat_hash\u003c/code\u003e cannot: tokens that omit the claim, and tokens whose \u003ccode\u003eat_hash\u003c/code\u003e is stale because the client refreshed its access token after sign-in. This check runs even when \u003ccode\u003eskip_info\u003c/code\u003e is set, as that option trims the auth hash rather than waiving verification.\u003c/li\u003e\n\u003cli\u003eThe bundled example app no longer disables TLS certificate verification. Anyone who copied that line into an application should remove it: it turns off certificate checking for every Faraday-based request in the process, not just the ones this gem makes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereset_jwks_cache!\u003c/code\u003e for clearing the cached Google signing keys between tests.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecached_jwks\u003c/code\u003e, the class-level fetch-and-cache primitive behind it, which takes the fetch itself as a block.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJWKS_URL\u003c/code\u003e, \u003ccode\u003eJWKS_CACHE_TTL\u003c/code\u003e, and \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e constants, and a \u003ccode\u003eJwksUnavailable\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eAn upper bound of \u003ccode\u003e\u0026lt; 4\u003c/code\u003e on the \u003ccode\u003ejwt\u003c/code\u003e dependency. This is precautionary rather than a response to a released version: it keeps a future major release from being picked up before it has been verified against this strategy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe fallback that placed the opaque access token in \u003ccode\u003eextra.id_token\u003c/code\u003e when no ID token was present. \u003ccode\u003eextra.id_token\u003c/code\u003e is now absent in that case rather than holding a value that was never an ID token. This was only reachable with \u003ccode\u003eskip_jwt\u003c/code\u003e set; without it the fallback raised instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore every credential field a caller supplies in a direct access-token callback apart from the access token itself and a verified ID token. \u003ccode\u003erefresh_token\u003c/code\u003e and token expiry in particular cannot be verified, so they are no longer carried through.\u003c/li\u003e\n\u003cli\u003eAvoid decoding opaque access tokens as JWTs when no ID token is available.\u003c/li\u003e\n\u003cli\u003eFail with a normal authentication failure when a callback carries no usable credential, such as an ID token with no access token, a JSON body that is not an object, or an unparseable body. Previously these raised a \u003ccode\u003eNoMethodError\u003c/code\u003e or \u003ccode\u003eTypeError\u003c/code\u003e that OmniAuth turned into a failure whose message was the raw Ruby error, so applications received an unstable \u003ccode\u003emessage\u003c/code\u003e parameter such as \u003ccode\u003eundefined method 'expired?'\u003c/code\u003e instead of \u003ccode\u003einvalid_credentials\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eServe the cached signing keys when Google's key endpoint is briefly unreachable, and back off before refetching, rather than retrying on every request, including when nothing is cached yet.\u003c/li\u003e\n\u003cli\u003eReject a signing key response that is not an object with a \u003ccode\u003ekeys\u003c/code\u003e array, rather than passing it on to be interpreted as some other kind of key.\u003c/li\u003e\n\u003cli\u003eCap how often an ID token naming an unrecognised key can force a key refresh, so it cannot be used to drive unbounded outbound requests while holding the shared cache lock. Key rotation still resolves within \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejwt_leeway\u003c/code\u003e now also applies when verifying caller-supplied ID tokens, matching how it already behaved for the \u003ccode\u003eextra\u003c/code\u003e block.\u003c/li\u003e\n\u003cli\u003eSupport non-rewindable JSON request bodies under Rack 3.\u003c/li\u003e\n\u003cli\u003eAccept ID tokens issued to any configured \u003ccode\u003eauthorized_client_ids\u003c/code\u003e, matching the audiences already accepted for access tokens.\u003c/li\u003e\n\u003cli\u003eReuse successfully verified ID token claims when building \u003ccode\u003eextra\u003c/code\u003e, so each ID token is decoded and validated only once per request.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c2fa91f53806725f3afd459b6e58e3020f1e3a0a\"\u003e\u003ccode\u003ec2fa91f\u003c/code\u003e\u003c/a\u003e Fix token info cache keying and log injection, and require core ID token claims\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c6af73e631b0201913bff13e5276784c06797d63\"\u003e\u003ccode\u003ec6af73e\u003c/code\u003e\u003c/a\u003e Reduce redundant JWKS cache timestamp calculations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/778c9906f3b46f488ca935293b30cc6dc0a45c43\"\u003e\u003ccode\u003e778c990\u003c/code\u003e\u003c/a\u003e Tiny README.md correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/eae8feb8994c3ebbcfacc90e83020966cbbc7cb2\"\u003e\u003ccode\u003eeae8feb\u003c/code\u003e\u003c/a\u003e Clarify CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ef303e62e40a0ed3e979b938cd03d428ea227747\"\u003e\u003ccode\u003eef303e6\u003c/code\u003e\u003c/a\u003e Accept ID tokens from authorized client IDs and fix Ruby 2.5 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e5be50ed4b98980bbe449bbd5f165e04477012e5\"\u003e\u003ccode\u003ee5be50e\u003c/code\u003e\u003c/a\u003e Verify caller-supplied ID tokens against Google's signing keys and bind them ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/650aab99f7611e14d1414aeeac99fb769448408b\"\u003e\u003ccode\u003e650aab9\u003c/code\u003e\u003c/a\u003e Update example to show AJAX payloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/0b87f3f2c7a8f9438ae8c676fcdfbdaacc87f66d\"\u003e\u003ccode\u003e0b87f3f\u003c/code\u003e\u003c/a\u003e Fix ID token spoofing in direct access-token callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/41796b62f47192e2b51b46525132932248992347\"\u003e\u003ccode\u003e41796b6\u003c/code\u003e\u003c/a\u003e specify that jwt must be less than version 4 (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/55590719512739ee8300b9a8c7a2ab7a4651145e\"\u003e\u003ccode\u003e5559071\u003c/code\u003e\u003c/a\u003e Better CHANGELOG.md\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rake` from 13.3.1 to 13.4.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/503b8ec593c51289c09cc2a69a34af99d6198c6a\"\u003e\u003ccode\u003e503b8ec\u003c/code\u003e\u003c/a\u003e v13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/46038e780e5982c34a745229b91909871c18357c\"\u003e\u003ccode\u003e46038e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/723\"\u003e#723\u003c/a\u003e from ruby/fix/testopts-preserve-existing-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/604a3d9873f75442b6209b6f9d7938a5358a9fe1\"\u003e\u003ccode\u003e604a3d9\u003c/code\u003e\u003c/a\u003e Isolate TESTOPTS env in TestRakeTestTask setup/teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/5886caa127339046cedef67713ef990a7eb7710c\"\u003e\u003ccode\u003e5886caa\u003c/code\u003e\u003c/a\u003e Preserve ENV[\u0026quot;TESTOPTS\u0026quot;] when verbose is enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/92193acc3674fd1567bab0bcf3f5df37f141b47e\"\u003e\u003ccode\u003e92193ac\u003c/code\u003e\u003c/a\u003e v13.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b74be0be2421b7719ebde57420ff738479ada341\"\u003e\u003ccode\u003eb74be0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/721\"\u003e#721\u003c/a\u003e from ruby/fix/add-options-to-gemspec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/829f66d86cd28810fdd3dcbc4fff8feabf554d73\"\u003e\u003ccode\u003e829f66d\u003c/code\u003e\u003c/a\u003e Add lib/rake/options.rb to gemspec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/2d55bc4a8b97db9f0c085df59d338077885f6f1a\"\u003e\u003ccode\u003e2d55bc4\u003c/code\u003e\u003c/a\u003e v13.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/14150701d48a16400b820977f6d64a7f0604d9f0\"\u003e\u003ccode\u003e1415070\u003c/code\u003e\u003c/a\u003e Exclude dependabot updates from release note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b3dc948e2689487b37052288097a6666e001effb\"\u003e\u003ccode\u003eb3dc948\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/713\"\u003e#713\u003c/a\u003e from pvdb/simplify_standard_system_dir\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rake/compare/v13.3.1...v13.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roda` from 3.103.0 to 3.108.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jeremyevans/roda/blob/master/CHANGELOG\"\u003eroda's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 3.108.0 (2026-09-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake invalid_request_body r.POST exception handling reraise RodaErrors (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake host_routing plugin downcase hostnames before storage and comparison (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake :extension hash matcher in path_matchers plugin require . before extension (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd params_capturing_restore plugin to have params_capturing work with pass and break plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways set Vary response header if considering Accept request header in type_routing plugin (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHave r.last_modified in caching plugin check If-Unmodified-Since before If-None-Match and If-Modified-Since (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not have r.on_segment in optimized_segment_matchers match empty segment (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not have r.on with String class matcher and default symbol matcher match empty segment (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake pass plugin work with hash_branches and hash_paths plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake params_capturing plugin override a provided parameter named captures (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the :clear_session csrf_failure option value in the route_csrf and sec_fetch_site_csrf plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake segment matching with convertor not consume remaining_path if convertor returns false/nil (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake etag in the caching plugin return a 412 response if an If-Match header is submitted and weak option is used (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake r.redirect without arguments use / if path starts with // (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake run_append_slash with :use_redirects option not redirect if path starts with // (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake hash matcher reset remaining path and captures on failure (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake pass and break plugins work with optimized_{string,segment}_matchers plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake render method options have greater priority than options set via set_view_options (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not allow rendering templates outside an allowed_paths directory but having an allowed path as a prefix (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not add the :views directory as an allowed path if it isn't a directory (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport json_parser :content_type_regexp plugin option, warn if not provided (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd r.query to all_verbs plugin on Rack 3.3+ (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport :exempt_request_methods option for route_csrf plugin, to use an allow list approach (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd csrf_request_method to route_csrf plugin, to handle case where REQUEST_METHOD has been modified (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/f13bb6bc4cb24a1397f38fbd3558c602503f92e3\"\u003e\u003ccode\u003ef13bb6b\u003c/code\u003e\u003c/a\u003e Bump version to 3.108.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/523005c52efd9e6662d7466a481ee4162abe2c40\"\u003e\u003ccode\u003e523005c\u003c/code\u003e\u003c/a\u003e Switch one of recommended :content_type_regexp examples to be case insensitive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/3bd72155990c5a8fedb550fc636d3df458b30798\"\u003e\u003ccode\u003e3bd7215\u003c/code\u003e\u003c/a\u003e Fix JRUBY_VERSION check in sessions spec to handle JRuby 10+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/aed701cf7d800c171e86904e785da53c3364de8e\"\u003e\u003ccode\u003eaed701c\u003c/code\u003e\u003c/a\u003e Explain why you may want to use public plugin instead of static\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/d5790231193b627bc10d5a89489fdf8430b8e0b3\"\u003e\u003ccode\u003ed579023\u003c/code\u003e\u003c/a\u003e Make invalid_request_body r.POST exception handling reraise RodaErrors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/d7b9422e64aa488d79638c181b8e31de9b49e01e\"\u003e\u003ccode\u003ed7b9422\u003c/code\u003e\u003c/a\u003e Make host_routing plugin downcase hostnames before storage and comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/440159345ed4a6162c40bd5e18378d7def1c35bb\"\u003e\u003ccode\u003e4401593\u003c/code\u003e\u003c/a\u003e Make :extension hash matcher in path_matchers plugin require . before extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/6399979a05f2b7f291304287c9a056ec95801c04\"\u003e\u003ccode\u003e6399979\u003c/code\u003e\u003c/a\u003e Remove unneeded branch in hmac_paths plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/33054425935327a05b29d6cda86d37acd9a365ab\"\u003e\u003ccode\u003e3305442\u003c/code\u003e\u003c/a\u003e Add params_capturing_restore plugin to have params_capturing work with pass a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/acd56dfeedb6721788cacfa0e343c07022cfb716\"\u003e\u003ccode\u003eacd56df\u003c/code\u003e\u003c/a\u003e Always set Vary response header if considering Accept request header in type_...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jeremyevans/roda/compare/3.103.0...3.108.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rodauth` from 2.43.0 to 2.48.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jeremyevans/rodauth/blob/master/CHANGELOG\"\u003erodauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.48.0 (2026-09-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd logged_in_fallback_to_http_basic_auth? configuration method to http_basic_auth feature (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake account_from_session return account loaded via http_basic_auth feature (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password_grace_period to not unset last_password_entry_session_key if new p...\n\n_Description has been truncated_","html_url":"https://github.com/Layerrail/layerrail/pull/231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layerrail%2Flayerrail/issues/231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/231/packages"},{"uuid":"5848537219","node_id":"PR_kwDOHFdNx88AAAABIZbb-A","number":2418,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-14T13:18:36.000Z","updated_at":"2026-10-14T13:25:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/govuk-forms/forms-runner/pull/2418","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/govuk-forms%2Fforms-runner/issues/2418","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2418/packages"},{"uuid":"5797909442","node_id":"PR_kwDOQ8VhiM8AAAABHxZxDQ","number":58,"state":"closed","title":"Bump the bundler group with 8 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-25T04:14:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-11T04:21:01.000Z","updated_at":"2026-10-25T04:14:38.000Z","time_to_close":1209213,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":8,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov","old_version":"1.1.1","new_version":"1.3.2","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"twilio-ruby","old_version":"7.11.1","new_version":"7.11.3","repository_url":"https://github.com/twilio/twilio-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.26` | `0.1.27` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.50.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.1.1` | `1.3.2` |\n| [twilio-ruby](https://github.com/twilio/twilio-ruby) | `7.11.1` | `7.11.3` |\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium-webdriver` from 4.47.0 to 4.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/releases\"\u003eselenium-webdriver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.50.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eselenium-webdriver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplecov` from 1.1.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/releases\"\u003esimplecov's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob that matches a template warns and leaves it out instead of simulating it. Simulation classifies lines as Ruby and parses for branches, so a swept-in template appeared with a comment counted as a missed line, an \u003ccode\u003e#id\u003c/code\u003e tag counted as never relevant, and no branches at all. The warning names the templates and points at \u003ccode\u003ecover_views\u003c/code\u003e, which compiles them and measures the real thing.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e toggle works in a template's own comment syntax (\u003ccode\u003e\u0026lt;%# :nocov: %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# :nocov:\u003c/code\u003e, \u003ccode\u003e/ :nocov:\u003c/code\u003e) and emits its deprecation warning there. The matcher read raw lines and needed the line to begin with \u003ccode\u003e#\u003c/code\u003e, so those forms were silently ignored while the Ruby-comment form inside an ERB code tag happened to work. The matcher now reads the same extracted Ruby the directives do.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods. The filter keeps a Coverage entry only when Prism finds a matching construct in the static source, which for a template measured with \u003ccode\u003ecover_views\u003c/code\u003e meant parsing ERB, Haml, or Slim as Ruby. That usually fails and the entry is kept, but a template whose text happens to parse (a Haml or Slim \u003ccode\u003e#id\u003c/code\u003e tag reads as a Ruby comment, and so does an ERB text line starting with \u003ccode\u003e#\u003c/code\u003e) yielded a confident wrong parse, and the template's own conditionals vanished from branch coverage. Templates now skip the parse, since everything a template reports is eval-generated by construction and the filter has nothing to distinguish there.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.2 adds change-focused coverage, per-test attribution, production coverage, and a substantially expanded\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md\"\u003esimplecov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.2 (2026-09-30)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.1 (2026-09-24)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.0 (2026-09-12)\u003c/h1\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/52a8754ccc443b0f049493ec7f06920bdcf6ad28\"\u003e\u003ccode\u003e52a8754\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4fb4ae1f2c92f0fdcbb0a4d80217706d46e8a217\"\u003e\u003ccode\u003e4fb4ae1\u003c/code\u003e\u003c/a\u003e Format a result collected before exit on Rails 8.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/14767413eeb89dab0051cf0b914725d9db5df252\"\u003e\u003ccode\u003e1476741\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/343a933b72ac5d8cacc11e7bccf1f881a75a6fd1\"\u003e\u003ccode\u003e343a933\u003c/code\u003e\u003c/a\u003e Stop leaking a flush thread in the forked-child production specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e64fcaa0a540f88d3e9bc79db0ec2abe08950132\"\u003e\u003ccode\u003ee64fcaa\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.323.0 to 1.325.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/cb8bd83fd13b3b7b863c149d487cdbd8264393fc\"\u003e\u003ccode\u003ecb8bd83\u003c/code\u003e\u003c/a\u003e Bump oxlint from 1.83.0 to 1.85.0 in /html_frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4ee7894dd4feb3c18a30bb6d487e0266aed3318e\"\u003e\u003ccode\u003e4ee7894\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/486e55e92a46b47ebe52ea97742105360fbe8c24\"\u003e\u003ccode\u003e486e55e\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/d2a62a86cd0fdba0813f0bc71b878c5c1aaeea29\"\u003e\u003ccode\u003ed2a62a8\u003c/code\u003e\u003c/a\u003e Resolve paths and wait on runners correctly on JRuby on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/3a2e08eb02983bdc6ba92ee4a520231cd6ad97bf\"\u003e\u003ccode\u003e3a2e08e\u003c/code\u003e\u003c/a\u003e Load Prism only when the static extractor runs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `twilio-ruby` from 7.11.1 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twilio/twilio-ruby/releases\"\u003etwilio-ruby's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003e\u003cstrong\u003eRelease Notes\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eLibrary - Fix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[PR \u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/issues/809\"\u003e#809\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/pull/809\"\u003etwilio/twilio-ruby#809\u003c/a\u003e): validate webhook signatures on percent-encoded request paths. Thanks to \u003ca href=\"https://github.com/manisha1997\"\u003e\u003ccode\u003e@​manisha1997\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTwiml\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eaudio_format\u003c/code\u003e and \u003ccode\u003esample_rate\u003c/code\u003e to Stream ...\n\n_Description has been truncated_","html_url":"https://github.com/josh-levinson/still_on/pull/58","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/josh-levinson%2Fstill_on/issues/58","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/58/packages"},{"uuid":"5788336076","node_id":"PR_kwDOUPqiw88AAAABHqIL2A","number":48,"state":"closed","title":"chore(deps): Bump the ruby-production group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-17T05:04:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-10T05:12:06.000Z","updated_at":"2026-10-17T05:04:15.000Z","time_to_close":604327,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"ruby-production","update_count":4,"packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"mcp","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/modelcontextprotocol/ruby-sdk"},{"name":"aws-sdk-s3","old_version":"1.232.1","new_version":"1.233.2","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-production group with 4 updates in the / directory: [pg](https://github.com/ged/ruby-pg), [mcp](https://github.com/modelcontextprotocol/ruby-sdk), [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) and [thruster](https://github.com/basecamp/thruster).\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.6.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0\u003c/h2\u003e\n\u003cp\u003eThis release lets a web application finish the OAuth authorization in the request that receives the redirect, bounds the \u003ccode\u003einitialize\u003c/code\u003e request a session retains and the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains, validates icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e, and repairs two \u003ccode\u003esubscriptions/listen\u003c/code\u003e cases: a request that cannot be encoded is refused, and a removed stream is marked closed.\nThe two bounds and the icon validation reject what earlier releases accepted and ship in a minor release under the exceptions described in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md\"\u003ehttps://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md\u003c/a\u003e; raise \u003ccode\u003emax_initialize_request_bytes:\u003c/code\u003e and \u003ccode\u003emax_resource_subscription_bytes:\u003c/code\u003e (or set them to \u003ccode\u003enil\u003c/code\u003e) where the byte bounds are too tight, and give Hash icons only the \u003ccode\u003eMCP::Icon\u003c/code\u003e members with a valid \u003ccode\u003esrc\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet a web application finish authorization in the request that receives the redirect (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the \u003ccode\u003einitialize\u003c/code\u003e request a session retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1\u003c/h2\u003e\n\u003cp\u003eThis release makes the OAuth client parse \u003ccode\u003eWWW-Authenticate\u003c/code\u003e headers and URLs in linear time and repairs the lifecycle of \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams: same-id streams are served, a keepalive thread ends with its slot, and the acknowledgement precedes the closing result.\u003c/p\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace authorization request parameters the endpoint URL already carries (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eServe \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams that carry the same request id (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnd a listen stream's keepalive thread when its slot is freed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse the \u003ccode\u003eWWW-Authenticate\u003c/code\u003e challenge in linear time (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep the acknowledgement first when the transport closes during a listen registration (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve dot segments in linear time when canonicalizing a URL (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/main/CHANGELOG.md\"\u003emcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.7.0] - 2026-10-05\u003c/h2\u003e\n\u003cp\u003eThis release lets a web application finish the OAuth authorization in the request that receives the redirect,\nbounds the \u003ccode\u003einitialize\u003c/code\u003e request a session retains and the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains,\nvalidates icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e, and repairs two \u003ccode\u003esubscriptions/listen\u003c/code\u003e cases: a request that\ncannot be encoded is refused, and a removed stream is marked closed.\nThe two bounds and the icon validation reject what earlier releases accepted and ship in a minor release under\nthe exceptions described in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md\"\u003ehttps://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md\u003c/a\u003e; raise \u003ccode\u003emax_initialize_request_bytes:\u003c/code\u003e and\n\u003ccode\u003emax_resource_subscription_bytes:\u003c/code\u003e (or set them to \u003ccode\u003enil\u003c/code\u003e) where the byte bounds are too tight, and give Hash icons only\nthe \u003ccode\u003eMCP::Icon\u003c/code\u003e members with a valid \u003ccode\u003esrc\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet a web application finish authorization in the request that receives the redirect (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the \u003ccode\u003einitialize\u003c/code\u003e request a session retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.6.1] - 2026-09-27\u003c/h2\u003e\n\u003cp\u003eThis release makes the OAuth client parse \u003ccode\u003eWWW-Authenticate\u003c/code\u003e headers and URLs in linear time and repairs\nthe lifecycle of \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams: same-id streams are served, a keepalive thread ends with its slot,\nand the acknowledgement precedes the closing result.\u003c/p\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace authorization request parameters the endpoint URL already carries (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eServe \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams that carry the same request id (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnd a listen stream's keepalive thread when its slot is freed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse the \u003ccode\u003eWWW-Authenticate\u003c/code\u003e challenge in linear time (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep the acknowledgement first when the transport closes during a listen registration (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve dot segments in linear time when canonicalizing a URL (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/d4202c2fcba82013763d59ce63b8cfad6692e192\"\u003e\u003ccode\u003ed4202c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/588\"\u003e#588\u003c/a\u003e from koic/release_1_7_0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/6cb9875b881b69a859a1a872cea62ddd74401aa5\"\u003e\u003ccode\u003e6cb9875\u003c/code\u003e\u003c/a\u003e Release 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/745bc61ef1817b88786bc455b0e0910bff9573cc\"\u003e\u003ccode\u003e745bc61\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e from koic/mark_removed_listen_streams_closed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/cc886567054188b6ce8044f332387c8c61d83307\"\u003e\u003ccode\u003ecc88656\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e from koic/validate_icons_given_as_hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/0cef02410c3ad7b0fe57f4cedf0a5ce58e6a884a\"\u003e\u003ccode\u003e0cef024\u003c/code\u003e\u003c/a\u003e Mark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/402cb56f99f9a3203eb50bacf79e4cfe1baedfd6\"\u003e\u003ccode\u003e402cb56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e from koic/refuse_listen_requests_that_cannot_be_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/73d6da3f21b65455f4d9527e511e5061ffecb779\"\u003e\u003ccode\u003e73d6da3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/584\"\u003e#584\u003c/a\u003e from koic/describe_the_pending_authorization_checks_a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/a49ab43825719bae96d28a432f0a8cbe6c791988\"\u003e\u003ccode\u003ea49ab43\u003c/code\u003e\u003c/a\u003e Validate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/739dd558759d6debdd4576f031e84ffb659cecab\"\u003e\u003ccode\u003e739dd55\u003c/code\u003e\u003c/a\u003e Refuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/095bd819910e492df8ec9688e21642f6aceb4171\"\u003e\u003ccode\u003e095bd81\u003c/code\u003e\u003c/a\u003e [Doc] Describe the pending authorization checks as the code establishes them\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/compare/v1.6.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.232.1 to 1.233.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.233.2 (2026-10-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix \u003ccode\u003edownload_file\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e leaving a corrupt file at the destination when a part raises a non-\u003ccode\u003eStandardError\u003c/code\u003e, and leaving a temp file behind when a caller-provided executor rejects a part.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Prevent \u003ccode\u003eupload_directory\u003c/code\u003e and \u003ccode\u003edownload_directory\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e from hanging when listing files or objects raises a non-\u003ccode\u003eStandardError\u003c/code\u003e, such as from a \u003ccode\u003e:filter_callback\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.233.1 (2026-10-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix unbounded memory growth in \u003ccode\u003eupload_stream\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e when the data source outpaces the upload (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-ruby/issues/3407\"\u003e#3407\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Prevent \u003ccode\u003eupload_file\u003c/code\u003e, \u003ccode\u003eupload_stream\u003c/code\u003e and \u003ccode\u003edownload_file\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e from hanging when a worker thread is terminated by a non-\u003ccode\u003eStandardError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.233.0 (2026-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Amazon S3 adds a new optional S3 Inventory field, IntelligentTieringReferenceDate, reporting the reference date S3 Intelligent-Tiering uses to evaluate an object's tier-transition eligibility. The value is populated for objects in the Intelligent-Tiering storage class and left blank for others.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.232.3 (2026-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Remove \u003ccode\u003e:thread_count\u003c/code\u003e from transfer options even when a custom \u003ccode\u003e:executor\u003c/code\u003e is configured on \u003ccode\u003eTransferManager\u003c/code\u003e, fixing an \u003ccode\u003eArgumentError\u003c/code\u003e raised on single-part \u003ccode\u003eupload_file\u003c/code\u003e calls.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix \u003ccode\u003e:thread_count\u003c/code\u003e being ignored by the deprecated \u003ccode\u003eObject#download_file\u003c/code\u003e, which always used the default thread count.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.232.2 (2026-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Ensure the internally-created executor is shutdown on error in \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e resource methods, preventing leaked worker threads on multipart transfer failures (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-ruby/issues/3419\"\u003e#3419\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/urisrb/uris/pull/48","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/urisrb%2Furis/issues/48","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/48/packages"},{"uuid":"5782958925","node_id":"PR_kwDOR70W288AAAABHl43Wg","number":116,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-09T18:39:53.000Z","updated_at":"2026-10-09T18:40:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/tyrrell-IH/DiscordToDiary/pull/116","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyrrell-IH%2FDiscordToDiary/issues/116","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/116/packages"},{"uuid":"5722082203","node_id":"PR_kwDOUxels88AAAABG1OOXw","number":5,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-06T02:44:13.000Z","updated_at":"2026-10-06T02:44:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sonofnos/shelfwise/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonofnos%2Fshelfwise/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"5720163541","node_id":"PR_kwDOQ7AAX88AAAABGzsfjA","number":86,"state":"closed","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-26T11:19:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T23:05:23.000Z","updated_at":"2026-10-26T11:20:00.000Z","time_to_close":1772074,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dantherussell/f1_local_timing/pull/86","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantherussell%2Ff1_local_timing/issues/86","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/86/packages"},{"uuid":"5582461986","node_id":"PR_kwDOB4ZGwM8AAAABFG1xow","number":343,"state":"open","title":"Bump the ruby-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-25T11:58:24.000Z","updated_at":"2026-09-25T11:58:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":34,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.6","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.41.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"rails","old_version":"7.2.3.2","new_version":"7.2.4","repository_url":"https://github.com/rails/rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.2.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.232.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.4.1","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.7.0","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.4","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"loofah","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/flavorjones/loofah"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"globalid","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/rails/globalid"},{"name":"net-imap","old_version":"0.5.15","new_version":"0.6.7","repository_url":"https://github.com/ruby/net-imap"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"json","old_version":"2.19.3","new_version":"3.0.2","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.6` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.15.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.41.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [rails](https://github.com/rails/rails) | `7.2.3.2` | `7.2.4` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.2.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.232.1` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.4.1` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.7.0` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.4` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.25.1` | `2.25.2` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.7` |\n| [globalid](https://github.com/rails/globalid) | `1.3.0` | `1.4.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.15` | `0.6.7` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `3.0.2` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.49.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.7.0` |\n\n\nUpdates `sqlite3` from 1.6.1 to 2.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003ed8b1f7d23efd7abac285775a9566562fc7debfef79d594e3a20354406fb7907c  gems/sqlite3-2.9.6-aarch64-linux-gnu.gem\r\n3579e1c98cdc7ff5c3722847bb63ed4e1efb7ff675cb5e1e48ef2d4da5fb3bc9  gems/sqlite3-2.9.6-aarch64-linux-musl.gem\r\n33541500e3615da02afe54a9cc38b17a6985d3cf9d8b76d6d0a83002f114e7ec  gems/sqlite3-2.9.6-arm-linux-gnu.gem\r\nc5490af48bb228fefa54314e9541375c3907e70f8109f3881b5ff97e1c93ae33  gems/sqlite3-2.9.6-arm-linux-musl.gem\r\n849b5d7f795e60fe25076d62c72dd722beb45b3850b516ad978d60ee848ec15b  gems/sqlite3-2.9.6-arm64-darwin.gem\r\n1f2b88f417fd0a8c1d5ef19c7e817d8b9c61bee6e33b6b36255fb6e40148e6f8  gems/sqlite3-2.9.6-x64-mingw-ucrt.gem\r\nfbaa9f46f9708f57dd8a459b37fc269f9613e0cacf1547df01aa439cc45c20c0  gems/sqlite3-2.9.6-x86-linux-gnu.gem\r\n6715026fbb5530e810b28ef43b9c4f84cd3c991f67b9d808a31fcc32b847abbd  gems/sqlite3-2.9.6-x86-linux-musl.gem\r\nb5842fea77781c14da03fa7bc0feb82db03a69e135affcb6f5399cbd2797a5f3  gems/sqlite3-2.9.6-x86_64-darwin.gem\r\n613188ce02f614126ddbc38c5e217ccffd6306d0dcd9adca9764547aa890a634  gems/sqlite3-2.9.6-x86_64-linux-gnu.gem\r\nd493b11818a3573387a1d56e1ee8fa00da23a683a7a1cc063e7a0feeed843abf  gems/sqlite3-2.9.6-x86_64-linux-musl.gem\r\n956fe606956420d04ac7157d3ace620c8caba2135b2e05c76e483493da24d08e  gems/sqlite3-2.9.6.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.4 / 2026-05-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_1.html\"\u003ev3.53.1\u003c/a\u003e (from v3.53.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/704\"\u003e#704\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a52dc0d61351570eeff1a1ffb15054b795dfeebc\"\u003e\u003ccode\u003ea52dc0d\u003c/code\u003e\u003c/a\u003e version bump to v2.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/cc5ac0cdf05af8148f4363410da0ba32508d9c97\"\u003e\u003ccode\u003ecc5ac0c\u003c/code\u003e\u003c/a\u003e Root the aggregate argument array so GC cannot free live values (GHSA-mwm8-39...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/abcb0f60c777d29cc1c8ed37327cd164f90420f1\"\u003e\u003ccode\u003eabcb0f6\u003c/code\u003e\u003c/a\u003e Reject database filenames and VFS names containing NUL (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/1d86b7a46c842a5157cc1562f16ad6c8756004b4\"\u003e\u003ccode\u003e1d86b7a\u003c/code\u003e\u003c/a\u003e Raise when open_v2 or open16 is called on an open database (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/723017134144333bb782d96aeec82450ed5b5c87\"\u003e\u003ccode\u003e7230171\u003c/code\u003e\u003c/a\u003e Stop a raise inside a UDF block from deadlocking other threads (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2677f9a7a81fc48e8df3ba668606f4c60bd6ad42\"\u003e\u003ccode\u003e2677f9a\u003c/code\u003e\u003c/a\u003e Pass TEXT values containing embedded NULs to UDFs intact (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3de8f6ee30741bde839a98ce88b9023eac09c555\"\u003e\u003ccode\u003e3de8f6e\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac6bd2f79598290a6625d413fd309a7ae2f85143\"\u003e\u003ccode\u003eac6bd2f\u003c/code\u003e\u003c/a\u003e Release aggregate instances when sqlite finishes with them (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/32460e99f0d82a2a966b84f37a73cdaab96652c1\"\u003e\u003ccode\u003e32460e9\u003c/code\u003e\u003c/a\u003e Stop sqlite calling into moved Ruby objects (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f600993d286539411aa81f3b43d1c3678a63fd09\"\u003e\u003ccode\u003ef600993\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rubocop-minitest requirement (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.41.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.17.4\u003c/h2\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.3\u003c/h2\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.2\u003c/h2\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.1\u003c/h2\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.0\u003c/h2\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/343","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/343","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/343/packages"},{"uuid":"5085324440","node_id":"PR_kwDOAW-RD877ytkL","number":807,"state":"open","title":"Bump the all-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-06T23:10:09.000Z","updated_at":"2026-09-10T23:10:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":35,"packages":[{"name":"shakapacker","old_version":"10.2.0","new_version":"10.3.2","repository_url":"https://github.com/shakacode/shakapacker"},{"name":"rails","old_version":"8.1.3","new_version":"8.1.3.1","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.5.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"puma","old_version":"6.4.2","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"uglifier","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/lautis/uglifier"},{"name":"jbuilder","old_version":"2.12.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"redis","old_version":"5.3.0","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"sdoc","old_version":"2.6.1","new_version":"2.6.5","repository_url":"https://github.com/zzak/sdoc"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"autoprefixer-rails","old_version":"10.4.16.0","new_version":"10.4.21.0","repository_url":"https://github.com/ai/autoprefixer-rails"},{"name":"redcarpet","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/vmg/redcarpet"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"spring","old_version":"4.2.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"},{"name":"factory_bot_rails","old_version":"6.4.3","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop","old_version":"1.69.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.23.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.29.1","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.4.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"debug","old_version":"1.9.2","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"pry","old_version":"0.14.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"pry-doc","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/pry/pry-doc"},{"name":"pry-stack_explorer","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pry/pry-stack_explorer"},{"name":"capybara-screenshot","old_version":"1.0.26","new_version":"1.0.27","repository_url":"https://github.com/mattheworiordan/capybara-screenshot"},{"name":"coveralls_reborn","old_version":"0.25.0","new_version":"1.0.0","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"database_cleaner","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/DatabaseCleaner/database_cleaner"},{"name":"launchy","old_version":"3.0.1","new_version":"3.1.1","repository_url":"https://github.com/copiousfreetime/launchy"},{"name":"rails_best_practices","old_version":"1.23.2","new_version":"1.23.4","repository_url":"https://github.com/flyerhzm/rails_best_practices"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.22.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"stimulus-rails","old_version":"1.3.3","new_version":"1.3.4","repository_url":"https://github.com/hotwired/stimulus-rails"},{"name":"turbo-rails","old_version":"2.0.11","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [shakapacker](https://github.com/shakacode/shakapacker) | `10.2.0` | `10.3.2` |\n| [rails](https://github.com/rails/rails) | `8.1.3` | `8.1.3.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.6` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.26.0` |\n| [puma](https://github.com/puma/puma) | `6.4.2` | `8.0.2` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.26` |\n| [uglifier](https://github.com/lautis/uglifier) | `4.2.0` | `4.2.1` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.12.0` | `2.15.1` |\n| [redis](https://github.com/redis/redis-rb) | `5.3.0` | `6.0.0` |\n| [sdoc](https://github.com/zzak/sdoc) | `2.6.1` | `2.6.5` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [autoprefixer-rails](https://github.com/ai/autoprefixer-rails) | `10.4.16.0` | `10.4.21.0` |\n| [redcarpet](https://github.com/vmg/redcarpet) | `3.6.0` | `3.6.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [spring](https://github.com/rails/spring) | `4.2.1` | `4.7.0` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.3` | `6.5.1` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.69.0` | `1.90.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.23.1` | `1.27.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.29.1` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.4.0` | `3.10.2` |\n| [debug](https://github.com/ruby/debug) | `1.9.2` | `1.11.1` |\n| [pry](https://github.com/pry/pry) | `0.14.2` | `0.16.0` |\n| [pry-doc](https://github.com/pry/pry-doc) | `1.5.0` | `1.7.0` |\n| [pry-stack_explorer](https://github.com/pry/pry-stack_explorer) | `0.6.1` | `0.6.3` |\n| [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) | `1.0.26` | `1.0.27` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.25.0` | `1.0.0` |\n| [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) | `2.0.2` | `2.1.0` |\n| [launchy](https://github.com/copiousfreetime/launchy) | `3.0.1` | `3.1.1` |\n| [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) | `1.23.2` | `1.23.4` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.22.0` | `4.48.0` |\n| [stimulus-rails](https://github.com/hotwired/stimulus-rails) | `1.3.3` | `1.3.4` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.11` | `2.0.23` |\n\n\nUpdates `shakapacker` from 10.2.0 to 10.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/releases\"\u003eshakapacker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.3.2\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs delegating Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e in unset and empty \u003ccode\u003ePATH\u003c/code\u003e environments.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/blob/main/CHANGELOG.md\"\u003eshakapacker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v10.3.2] - August 28, 2026\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.1] - August 3, 2026\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.0] - July 5, 2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstub Node resolution after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e when \u003ccode\u003ePATH\u003c/code\u003e is empty, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e. For an unset \u003ccode\u003ePATH\u003c/code\u003e, PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e deliberately delegates Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e's default-path behavior; PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e later changed that case to fail closed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/f152fe6d65407f4c14757adb5e750df2af9bd591\"\u003e\u003ccode\u003ef152fe6\u003c/code\u003e\u003c/a\u003e Release 10.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/594a691997e632bdd9b1f564fbe4d12b7c59ea08\"\u003e\u003ccode\u003e594a691\u003c/code\u003e\u003c/a\u003e Update changelog for 10.3.2 (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/843409ab02d878f5bed5f4014cdca68f312e60ec\"\u003e\u003ccode\u003e843409a\u003c/code\u003e\u003c/a\u003e Tell Rspack apps that .swcrc is ignored outright, not just unmigratable (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ee6bba96eb1fcc9848a9e3b135d3225a25ee89f8\"\u003e\u003ccode\u003eee6bba9\u003c/code\u003e\u003c/a\u003e Warn Rspack apps that SWC config files are unread for any javascript_transpil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ac81bcf1cdc4c988c718a24ff919293205a22b09\"\u003e\u003ccode\u003eac81bcf\u003c/code\u003e\u003c/a\u003e Fix the misleading deprecation warning for the ignored legacy bundler key (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/7eddfe1864bc0e89b59ede208e677037e0ea4982\"\u003e\u003ccode\u003e7eddfe1\u003c/code\u003e\u003c/a\u003e Document how to override builtin:swc-loader options on Rspack (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1267\"\u003e#1267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/24f3c2e26d9eb396e503fa75a3584a476ae2a046\"\u003e\u003ccode\u003e24f3c2e\u003c/code\u003e\u003c/a\u003e Trigger Node based checks on markdown-only pull requests (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/8d6ed807be5584375e9e0f59b885c47719c842ee\"\u003e\u003ccode\u003e8d6ed80\u003c/code\u003e\u003c/a\u003e Make AGENTS.md canonical for shared agent guidance (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/980c1946e3fdfdc8dda9699666ccf6c08d345f12\"\u003e\u003ccode\u003e980c194\u003c/code\u003e\u003c/a\u003e Document rspack 2.2 user-facing changes: SWC Wasm plugin break, rspackPublicP...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/d51c1a8b8a364f5a675207c1a3ffc984a20aa832\"\u003e\u003ccode\u003ed51c1a8\u003c/code\u003e\u003c/a\u003e Bump rspack dev pin from 2.0.1 to 2.2.0 and correct moduleIds/chunkIds config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shakacode/shakapacker/compare/v10.2.0...v10.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3 to 8.1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3.1\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction View\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Mailer\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Cable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Storage\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable libvips's unfuzzed image loaders and savers.\u003c/p\u003e\n\u003cp\u003elibvips flags some of its loaders and savers as \u0026quot;unfuzzed\u0026quot; or \u0026quot;untrusted\u0026quot;, meaning they are only\nsafe for trusted content. Active Storage will call \u003ccode\u003eVips.block_untrusted(true)\u003c/code\u003e to disable them\nwhile booting. An application that needs a specific loader or saver may re-enable it in an\ninitializer.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3989ebf3473d71e4ceca28154b0b57b5bf22db24\"\u003e\u003ccode\u003e3989ebf\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/349e7a5d5b4b715af1e416db824f3c078a7d59e5\"\u003e\u003ccode\u003e349e7a5\u003c/code\u003e\u003c/a\u003e Disable libvips's unfuzzed image loaders and savers\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3...v8.1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.6 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.6...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.4.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.4.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thru...\n\n_Description has been truncated_","html_url":"https://github.com/shakacode/react-webpack-rails-tutorial/pull/807","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-webpack-rails-tutorial/issues/807","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/807/packages"},{"uuid":"4510170029","node_id":"PR_kwDOSBBjO87etoch","number":20,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 28 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T01:46:51.000Z","updated_at":"2026-05-24T01:46:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":28,"packages":[{"name":"lefthook","old_version":"2.1.6","new_version":"2.1.8","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"prettier","old_version":"3.8.1","new_version":"3.8.3","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.59.1","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@opentelemetry/auto-instrumentations-node","old_version":"0.74.0","new_version":"0.76.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js-contrib"},{"name":"@opentelemetry/exporter-trace-otlp-http","old_version":"0.216.0","new_version":"0.218.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-node","old_version":"0.216.0","new_version":"0.218.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/semantic-conventions","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"express-rate-limit","old_version":"8.3.2","new_version":"8.5.2","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"helmet","old_version":"8.1.0","new_version":"8.2.0","repository_url":"https://github.com/helmetjs/helmet"},{"name":"openai","old_version":"6.34.0","new_version":"6.39.0","repository_url":"https://github.com/openai/openai-node"},{"name":"pdf-parse-new","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/simonegosetto/pdf-parse-new"},{"name":"fast-xml-parser","old_version":"5.7.2","new_version":"5.8.0","repository_url":"https://github.com/NaturalIntelligence/fast-xml-parser"},{"name":"vitest","old_version":"4.1.4","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"react-router-dom","old_version":"7.14.0","new_version":"7.15.1","repository_url":"https://github.com/remix-run/react-router"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"orval","old_version":"8.5.3","new_version":"8.12.3","repository_url":"https://github.com/orval-labs/orval"},{"name":"pg","old_version":"8.20.0","new_version":"8.21.0","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@types/pg","old_version":"8.18.0","new_version":"8.20.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"drizzle-kit","old_version":"0.31.9","new_version":"0.31.10","repository_url":"https://github.com/drizzle-team/drizzle-orm"},{"name":"@tailwindcss/vite","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@types/node","old_version":"25.3.5","new_version":"25.9.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"framer-motion","old_version":"12.35.1","new_version":"12.40.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"react-dom","old_version":"19.1.0","new_version":"19.2.6","repository_url":"https://github.com/facebook/react"},{"name":"react","old_version":"19.1.0","new_version":"19.2.6","repository_url":"https://github.com/facebook/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.15","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"tailwind-merge","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"tailwindcss","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.3","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.6` | `2.1.8` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.1` | `8.59.4` |\n| [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node) | `0.74.0` | `0.76.0` |\n| [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.216.0` | `0.218.0` |\n| [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.216.0` | `0.218.0` |\n| [@opentelemetry/semantic-conventions](https://github.com/open-telemetry/opentelemetry-js) | `1.40.0` | `1.41.1` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.3.2` | `8.5.2` |\n| [helmet](https://github.com/helmetjs/helmet) | `8.1.0` | `8.2.0` |\n| [openai](https://github.com/openai/openai-node) | `6.34.0` | `6.39.0` |\n| [pdf-parse-new](https://github.com/simonegosetto/pdf-parse-new) | `2.0.0` | `2.1.0` |\n| [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `5.7.2` | `5.8.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.4` | `4.1.7` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.14.0` | `7.15.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [orval](https://github.com/orval-labs/orval) | `8.5.3` | `8.12.3` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.20.0` | `8.21.0` |\n| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.18.0` | `8.20.0` |\n| [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) | `0.31.9` | `0.31.10` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.1` | `4.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.3.5` | `25.9.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.35.1` | `12.40.0` |\n| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.1.0` | `19.2.6` |\n| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.1.0` | `19.2.6` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.15` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.5.0` | `3.6.0` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.1` | `4.3.0` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.3` |\n\n\nUpdates `lefthook` from 2.1.6 to 2.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/releases\"\u003elefthook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.8\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e488a5f99a5a496e5837f757f8ce3e6c6d1415792 fix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.7\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ef415a9d3fce1d4f6af62622cf96c72e04ecf7bd3 chore: go mod tidy\u003c/li\u003e\n\u003cli\u003ecf4ab9ea4580f5aeb0d4b61d4dd169533e5bb0c9 fix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4c0e000d6fe9f35f42efefb9263b0b4cb5dfbd49 fix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1418\"\u003e#1418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e76aa843ef5ceb6970f61cd2ff28d16dd2ec82272 fix: linter, sacrifice optimization for readability\u003c/li\u003e\n\u003cli\u003e9d53c36ed9a26d3bf66e341a9650a0ecac9b6a37 fix: separate fallback push branch from pathspecs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e22c9f773cf93b59005bd244c5b00caab2947a755 fix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e37d83986d8e6d6bf6792f57e22e7cbb1a9e28064 fix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eeb1064d0b8c6248627960bea1abf6891db5a21b1 refactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md\"\u003elefthook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.8 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1421\"\u003e#1421\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.7 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1420\"\u003e#1420\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1418\"\u003e#1418\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1417\"\u003e#1417\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1416\"\u003e#1416\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1385\"\u003e#1385\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: linter, sacrifice optimization for readability by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: separate fallback push branch from pathspecs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1396\"\u003e#1396\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​lawrence3699\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/9e75b2138b4d31b156d3256c2b0617851377aaf2\"\u003e\u003ccode\u003e9e75b21\u003c/code\u003e\u003c/a\u003e 2.1.8: reduce warning for core.hooksPath if it matches the default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/488a5f99a5a496e5837f757f8ce3e6c6d1415792\"\u003e\u003ccode\u003e488a5f9\u003c/code\u003e\u003c/a\u003e fix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/b5c8310e174489a3705dbbe240eea035058a9128\"\u003e\u003ccode\u003eb5c8310\u003c/code\u003e\u003c/a\u003e 2.1.7: restore unstaged changes when possible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/37d83986d8e6d6bf6792f57e22e7cbb1a9e28064\"\u003e\u003ccode\u003e37d8398\u003c/code\u003e\u003c/a\u003e fix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/4c0e000d6fe9f35f42efefb9263b0b4cb5dfbd49\"\u003e\u003ccode\u003e4c0e000\u003c/code\u003e\u003c/a\u003e fix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1418\"\u003e#1418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/22c9f773cf93b59005bd244c5b00caab2947a755\"\u003e\u003ccode\u003e22c9f77\u003c/code\u003e\u003c/a\u003e fix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/cf4ab9ea4580f5aeb0d4b61d4dd169533e5bb0c9\"\u003e\u003ccode\u003ecf4ab9e\u003c/code\u003e\u003c/a\u003e fix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/f415a9d3fce1d4f6af62622cf96c72e04ecf7bd3\"\u003e\u003ccode\u003ef415a9d\u003c/code\u003e\u003c/a\u003e chore: go mod tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/eb1064d0b8c6248627960bea1abf6891db5a21b1\"\u003e\u003ccode\u003eeb1064d\u003c/code\u003e\u003c/a\u003e refactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/76aa843ef5ceb6970f61cd2ff28d16dd2ec82272\"\u003e\u003ccode\u003e76aa843\u003c/code\u003e\u003c/a\u003e fix: linter, sacrifice optimization for readability\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evilmartians/lefthook/compare/v2.1.6...v2.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.1 to 3.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.8.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSCSS: Prevent trailing comma in \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18471\"\u003eprettier/prettier#18471\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.3/CHANGELOG.md#383\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Angular v21.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/main/CHANGELOG.md#382\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.8.3\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.2...3.8.3\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eSCSS: Prevent trailing comma in \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18471\"\u003e#18471\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"scss\"\u003e\u003ccode\u003e// Input\n$value: if(sass(false): 1; else: -1);\n\u003cp\u003e// Prettier 3.8.2\n$value: if(\nsass(false): 1; else: -1,\n);\u003c/p\u003e\n\u003cp\u003e// Prettier 3.8.3\n$value: if(sass(false): 1; else: -1);\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch1\u003e3.8.2\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.1...3.8.2\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eAngular: Support Angular v21.2 (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18722\"\u003e#18722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19034\"\u003e#19034\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003eExhaustive typechecking with \u003ccode\u003e@default never;\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"html\"\u003e\u003ccode\u003e\u0026lt;!-- Input --\u0026gt;\n@switch (foo) {\n  @case (1) {}\n  @default never;\n}\n\u003cp\u003e\u0026lt;!-- Prettier 3.8.1 --\u0026gt;\nSyntaxError: Incomplete block \u0026quot;default never\u0026quot;. If you meant to write the @ character, you should use the \u0026quot;\u0026amp;\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/64\"\u003e#64\u003c/a\u003e;\u0026quot; HTML entity instead. (3:3)\u003c/p\u003e\n\u003cp\u003e\u0026lt;!-- Prettier 3.8.2 --\u0026gt;\n\u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e (foo) {\n\u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (1) {}\n\u003ca href=\"https://github.com/default\"\u003e\u003ccode\u003e@​default\u003c/code\u003e\u003c/a\u003e never;\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003earrow function\u003c/code\u003e and \u003ccode\u003einstanceof\u003c/code\u003e expressions.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"html\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d7108a79ec745c04292aabf22c4c1adbd690b191\"\u003e\u003ccode\u003ed7108a7\u003c/code\u003e\u003c/a\u003e Release 3.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/177f90898170d363ef64fde663e4d13170688bfe\"\u003e\u003ccode\u003e177f908\u003c/code\u003e\u003c/a\u003e Prevent trailing comma in SCSS \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/18471\"\u003e#18471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/1cd40668c3d6f2f4cf9d87bbc9096d92361b2606\"\u003e\u003ccode\u003e1cd4066\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e@​prettier/plugin-oxc\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/a8700e245038cd8cc0cf28ef06ffedbcb3fc2dfc\"\u003e\u003ccode\u003ea8700e2\u003c/code\u003e\u003c/a\u003e Update oxc-parser to v0.125.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/752157c78eca6f0a30e5d5cb513b682c5ecfa01e\"\u003e\u003ccode\u003e752157c\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/053fd418e180b12fa2014260212fae831f5fc5ec\"\u003e\u003ccode\u003e053fd41\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/904c6365ec46726fd0e21021c52ae934b7e5abc6\"\u003e\u003ccode\u003e904c636\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dc1f7fcc508d116cbf1644d69a1f0eb93e40d4a4\"\u003e\u003ccode\u003edc1f7fc\u003c/code\u003e\u003c/a\u003e Update dependents count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b31557cf331a02acf83e7e29d1001b070189a0d9\"\u003e\u003ccode\u003eb31557c\u003c/code\u003e\u003c/a\u003e Release 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/96bbaeda0525bf758e464aed2f939d739a85c315\"\u003e\u003ccode\u003e96bbaed\u003c/code\u003e\u003c/a\u003e Support Angular v21.2 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/18722\"\u003e#18722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/prettier/compare/3.8.1...3.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.59.1 to 8.59.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.59.4\u003c/h2\u003e\n\u003ch2\u003e8.59.4 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-floating-promises] stack overflow when using recursive types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294\"\u003e#12294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eproject-service:\u003c/strong\u003e throw error cause in \u003ccode\u003egetParsedConfigFileFromTSServer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12321\"\u003e#12321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-eslint:\u003c/strong\u003e export Compatible* types from typescript-eslint to resolve pnpm TS error (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340\"\u003e#12340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elumir\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.59.3\u003c/h2\u003e\n\u003ch2\u003e8.59.3 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.59.2\u003c/h2\u003e\n\u003ch2\u003e8.59.2 (2026-05-04)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-type-assertion] handle crash on recursive template literal types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150\"\u003e#12150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-deprecated] object destructuring values should be treated as declarations (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292\"\u003e#12292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erule-tester:\u003c/strong\u003e add TypeScript as a peer dependency (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12288\"\u003e#12288\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDariusz Czajkowski\u003c/li\u003e\n\u003cli\u003eDima Barabash\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.59.4 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-eslint:\u003c/strong\u003e export Compatible* types from typescript-eslint to resolve pnpm TS error (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340\"\u003e#12340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.59.3 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.59.2 (2026-05-04)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/ca6ca1431b6d18235297a7e29feb5d98f012dff2\"\u003e\u003ccode\u003eca6ca14\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/4b927c607755b2648d5854b9e928c1dbb2b8e088\"\u003e\u003ccode\u003e4b927c6\u003c/code\u003e\u003c/a\u003e fix(typescript-eslint): export Compatible* types from typescript-eslint to re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/48e13c0261e3cb1bf4f4dfaa462cdb3a56ef7383\"\u003e\u003ccode\u003e48e13c0\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/44f9625336841a8ee3eb01a9e02e49b1d7b12648\"\u003e\u003ccode\u003e44f9625\u003c/code\u003e\u003c/a\u003e chore(deps): update vitest monorepo to v4.1.5 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12307\"\u003e#12307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/2ec35f1760aade4df4c631d76d78c7ed5e136333\"\u003e\u003ccode\u003e2ec35f1\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.4/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/auto-instrumentations-node` from 0.74.0 to 0.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/releases\"\u003e@​opentelemetry/auto-instrumentations-node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eauto-instrumentations-node: v0.76.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.75.0...auto-instrumentations-node-v0.76.0\"\u003e0.76.0\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update deps matching '@opentelemetry/*' (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3523\"\u003e#3523\u003c/a\u003e) (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003ee26a90a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following workspace dependencies were updated\n\u003cul\u003e\n\u003cli\u003edependencies\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-amqplib\u003c/code\u003e bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-lambda\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-sdk\u003c/code\u003e bumped from ^0.72.0 to ^0.73.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-bunyan\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cassandra-driver\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-connect\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cucumber\u003c/code\u003e bumped from ^0.33.0 to ^0.34.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dataloader\u003c/code\u003e bumped from ^0.34.0 to ^0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dns\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-express\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-fs\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-generic-pool\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-graphql\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-hapi\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-ioredis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-kafkajs\u003c/code\u003e bumped from ^0.26.0 to ^0.27.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-knex\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-koa\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-lru-memoizer\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-memcached\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongodb\u003c/code\u003e bumped from ^0.70.0 to ^0.71.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongoose\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql2\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-nestjs-core\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-net\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-openai\u003c/code\u003e bumped from ^0.15.0 to ^0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-oracledb\u003c/code\u003e bumped from ^0.42.0 to ^0.43.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pg\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pino\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-redis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-restify\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-router\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-runtime-node\u003c/code\u003e bumped from ^0.30.0 to ^0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-socket\u003c/code\u003e.io bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-tedious\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-undici\u003c/code\u003e bumped from ^0.27.0 to ^0.28.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/auto-instrumentations-node/CHANGELOG.md\"\u003e@​opentelemetry/auto-instrumentations-node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.75.0...auto-instrumentations-node-v0.76.0\"\u003e0.76.0\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update deps matching '@opentelemetry/*' (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3523\"\u003e#3523\u003c/a\u003e) (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003ee26a90a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following workspace dependencies were updated\n\u003cul\u003e\n\u003cli\u003edependencies\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-amqplib\u003c/code\u003e bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-lambda\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-sdk\u003c/code\u003e bumped from ^0.72.0 to ^0.73.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-bunyan\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cassandra-driver\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-connect\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cucumber\u003c/code\u003e bumped from ^0.33.0 to ^0.34.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dataloader\u003c/code\u003e bumped from ^0.34.0 to ^0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dns\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-express\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-fs\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-generic-pool\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-graphql\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-hapi\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-ioredis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-kafkajs\u003c/code\u003e bumped from ^0.26.0 to ^0.27.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-knex\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-koa\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-lru-memoizer\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-memcached\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongodb\u003c/code\u003e bumped from ^0.70.0 to ^0.71.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongoose\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql2\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-nestjs-core\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-net\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-openai\u003c/code\u003e bumped from ^0.15.0 to ^0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-oracledb\u003c/code\u003e bumped from ^0.42.0 to ^0.43.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pg\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pino\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-redis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-restify\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-router\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-runtime-node\u003c/code\u003e bumped from ^0.30.0 to ^0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-socket\u003c/code\u003e.io bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-tedious\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-undici\u003c/code\u003e bumped from ^0.27.0 to ^0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-winston\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/15ef7506553f631ea4181391e0c5725a56f0d082\"\u003e\u003ccode\u003e15ef750\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3508\"\u003e#3508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003e\u003ccode\u003ee26a90a\u003c/code\u003e\u003c/a\u003e feat(deps): update deps matching '@opentelemetry/*' (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3523\"\u003e#3523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/b68fb6dcc0649631ebecab7bde81879486f74f0b\"\u003e\u003ccode\u003eb68fb6d\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3498\"\u003e#3498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e1ef3d1b14f177afd738f1c967018c1dc6fc900e\"\u003e\u003ccode\u003ee1ef3d1\u003c/code\u003e\u003c/a\u003e feat(deps): update deps matching '@opentelemetry/*' (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3507\"\u003e#3507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commits/auto-instrumentations-node-v0.76.0/packages/auto-instrumentations-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/exporter-trace-otlp-http` from 0.216.0 to 0.218.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/exporter-trace-otlp-http's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.218.0\u003c/h2\u003e\n\u003ch2\u003e0.218.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs metrics serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6629\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): show all config validation errors, if there are multiple \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6683\"\u003e#6683\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(sdk-node): allow startNodeSDK() without an arg \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6688\"\u003e#6688\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6691\"\u003e#6691\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(sdk-logs): use \u003ccode\u003eLogger.enabled()\u003c/code\u003e within \u003ccode\u003eLogger.emit()\u003c/code\u003e implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6680\"\u003e#6680\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexperimental/v0.217.0\u003c/h2\u003e\n\u003ch2\u003e0.217.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs trace serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6625\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): auto-generate TypeScript types from OTel declarative config JSON schema (stable v1.0.0) using \u003ccode\u003ejson-schema-to-typescript\u003c/code\u003e and \u003ccode\u003eajv\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6533\"\u003e#6533\u003c/a\u003e \u003ca href=\"https://github.com/MikeGoldsmith\"\u003e\u003ccode\u003e@​MikeGoldsmith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration, sdk-node): \u003ccode\u003estartNodeSDK()\u003c/code\u003e code path now uses \u003ccode\u003elog_level\u003c/code\u003e configuration to setup a DiagConsoleLogger \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6668\"\u003e#6668\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNote that allowed values for \u003ccode\u003elog_level\u003c/code\u003e in a configuration YAML file are \u003cem\u003enot\u003c/em\u003e the same set as for \u003ccode\u003eOTEL_LOG_LEVEL\u003c/code\u003e. Use \u003ccode\u003elog_level: trace\u003c/code\u003e to see \u003cem\u003eall\u003c/em\u003e logs (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=ALL\u003c/code\u003e). Use \u003ccode\u003elog_level: fatal\u003c/code\u003e to effectively disable the SDK's internal diagnostic logger (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=NONE\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eIf \u003ccode\u003elog_level\u003c/code\u003e is not specified, a diagnostic console logger at \u0026quot;info\u0026quot; level will be setup.\u003c/li\u003e\n\u003cli\u003eAn invalid YAML config file will now result in a noop OTel SDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bug: Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(configuration): do not validate \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e value before using it for file config \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6643\"\u003e#6643\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve how 'additionalProperties' in JSON schema is translated to TS types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6650\"\u003e#6650\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): remove stripMinItems and preprocessNullArrays from validation/parsing \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6657\"\u003e#6657\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve handling of enums in generated types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6659\"\u003e#6659\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve the technique for removing '| null' on types the JSON Schema \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6662\"\u003e#6662\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(sampler-jaeger-remote): add missing axios dep \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6656\"\u003e#6656\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(exporter-prometheus): handle malformed URLs in Prometheus exporter request handler \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6674\"\u003e#6674\u003c/a\u003e \u003ca href=\"https://github.com/homanp\"\u003e\u003ccode\u003e@​homanp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/06ad0eaaecbd49f5ead871325f852cc2a3454079\"\u003e\u003ccode\u003e06ad0ea\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6703\"\u003e#6703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/38ca257e64ebd13f5603d5539f8a48d6d9232037\"\u003e\u003ccode\u003e38ca257\u003c/code\u003e\u003c/a\u003e feat(otlp-transformer): replace protobufjs metrics serialization with custom ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.216.0...experimental/v0.218.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/sdk-node` from 0.216.0 to 0.218.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/sdk-node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.218.0\u003c/h2\u003e\n\u003ch2\u003e0.218.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs metrics serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6629\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): show all config validation errors, if there are multiple \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6683\"\u003e#6683\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(sdk-node): allow startNodeSDK() without an arg \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6688\"\u003e#6688\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6691\"\u003e#6691\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(sdk-logs): use \u003ccode\u003eLogger.enabled()\u003c/code\u003e within \u003ccode\u003eLogger.emit()\u003c/code\u003e implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6680\"\u003e#6680\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexperimental/v0.217.0\u003c/h2\u003e\n\u003ch2\u003e0.217.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs trace serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6625\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): auto-generate TypeScript types from OTel declarative config JSON schema (stable v1.0.0) using \u003ccode\u003ejson-schema-to-typescript\u003c/code\u003e and \u003ccode\u003eajv\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6533\"\u003e#6533\u003c/a\u003e \u003ca href=\"https://github.com/MikeGoldsmith\"\u003e\u003ccode\u003e@​MikeGoldsmith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration, sdk-node): \u003ccode\u003estartNodeSDK()\u003c/code\u003e code path now uses \u003ccode\u003elog_level\u003c/code\u003e configuration to setup a DiagConsoleLogger \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6668\"\u003e#6668\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNote that allowed values for \u003ccode\u003elog_level\u003c/code\u003e in a configuration YAML file are \u003cem\u003enot\u003c/em\u003e the same set as for \u003ccode\u003eOTEL_LOG_LEVEL\u003c/code\u003e. Use \u003ccode\u003elog_level: trace\u003c/code\u003e to see \u003cem\u003eall\u003c/em\u003e logs (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=ALL\u003c/code\u003e). Use \u003ccode\u003elog_level: fatal\u003c/code\u003e to effectively disable the SDK's internal diagnostic logger (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=NONE\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eIf \u003ccode\u003elog_level\u003c/code\u003e is not specified, a diagnostic console logger at \u0026quot;info\u0026quot; level will be setup.\u003c/li\u003e\n\u003cli\u003eAn invalid YAML config file will now result in a noop OTel SDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bug: Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(configuration): do not validate \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e value before using it for file config \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6643\"\u003e#6643\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve how 'additionalProperties' in JSON schema is translated to TS types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6650\"\u003e#6650\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): remove stripMinItems and preprocessNullArrays from validation/parsing \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6657\"\u003e#6657\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve handling of enums in generated types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6659\"\u003e#6659\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve the technique for removing '| null' on types the JSON Schema \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6662\"\u003e#6662\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(sampler-jaeger-remote): add missing axios dep \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6656\"\u003e#6656\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(exporter-prometheus): handle malformed URLs in Prometheus exporter request handler \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6674\"\u003e#6674\u003c/a\u003e \u003ca href=\"https://github.com/homanp\"\u003e\u003ccode\u003e@​homanp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/06ad0eaaecbd49f5ead871325f852cc2a3454079\"\u003e\u003ccode\u003e06ad0ea\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6703\"\u003e#6703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/38ca257e64ebd13f5603d5539f8a48d6d9232037\"\u003e\u003ccode\u003e38ca257\u003c/code\u003e\u003c/a\u003e feat(otlp-transformer): replace protobufjs metrics serialization with custom ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.216.0...experimental/v0.218.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/semantic-conventions` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/semantic-conventions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003esemconv/v1.41.1\u003c/h2\u003e\n\u003ch2\u003e1.41.1\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cp\u003eNote: Semantic Conventions v1.41.0 included \u003ca href=\"https://redirect.github.com/open-telemetry/semantic-conventions/issues/3705\"\u003ean issue\u003c/a\u003e that prevented publishing a \u0026quot;1.41.0\u0026quot; version of this package.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update semantic conventions to v1.41.1 \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6695\"\u003e#6695\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eSemantic Conventions v1.41.1: \u003ca href=\"https://github.com/open-telemetry/semantic-conventions/blob/main/CHANGELOG.md#v1410\"\u003echangelog v1.41.0\u003c/a\u003e | \u003ca href=\"https://github.com/open-telemetry/semantic-conventions/blob/release/v1.41.x/CHANGELOG.md#v1411\"\u003echangelog v1.41.1\u003c/a\u003e | \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/\"\u003elatest docs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@opentelemetry/semantic-conventions\u003c/code\u003e (stable) changes: \u003cem\u003e8 added exports\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@opentelemetry/semantic-conventions/incubating\u003c/code\u003e (unstable) changes: \u003cem\u003e2 exported values changed, 4 newly deprecated exports, 80 added exports\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStable changes in v1.41.1\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eATTR_DEPLOYMENT_ENVIRONMENT_NAME              // deployment.environment.name\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_DEVELOPMENT // \u0026quot;development\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_PRODUCTION  // \u0026quot;production\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_STAGING     // \u0026quot;staging\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_TEST        // \u0026quot;test\u0026quot;\r\n\u003cp\u003eATTR_OTEL_EVENT_NAME                          // otel.event.name\u003c/p\u003e\n\u003cp\u003eATTR_TELEMETRY_DISTRO_NAME                    // telemetry.distro.name\u003cbr /\u003e\nATTR_TELEMETRY_DISTRO_VERSION                 // telemetry.distro.version\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eUnstable changes in v1.41.1\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eMETRIC_K8S_CONTAINER_CPU_LIMIT_UTILIZATION   // k8s.container.cpu.limit_utilization -\u0026gt; k8s.container.cpu.limit.utilization\r\nMETRIC_K8S_CONTAINER_CPU_REQUEST_UTILIZATION // k8s.container.cpu.request_utilization -\u0026gt; k8s.container.cpu.request.utilization\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eMETRIC_K8S_CONTAINER_CPU_LIMIT      // k8s.container.cpu.limit: Replaced by `k8s.container.cpu.limit.desired`.\r\nMETRIC_K8S_CONTAINER_CPU_REQUEST    // k8s.container.cpu.request: Replaced by `k8s.container.cpu.request.desired`.\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/08932889fcccc2e3ccbcce1fca1544af384e145a\"\u003e\u003ccode\u003e0893288\u003c/code\u003e\u003c/a\u003e chore(sdk-node): restore skipped test cases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6685\"\u003e#6685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/3b5bfbdc05058e0aea90b8ba5e9c0133b5ef3ab0\"\u003e\u003ccode\u003e3b5bfbd\u003c/code\u003e\u003c/a\u003e feat(configuration): show all config validation errors, if there are multiple...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/semconv/v1.40.0...semconv/v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.3.2 to 8.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.5.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.5.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.5.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.4.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.4.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/97746932253e6c734569140e71357b2633eb1912\"\u003e\u003ccode\u003e9774693\u003c/code\u003e\u003c/a\u003e 8.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0e94cc0176ca0e4960bd6992f1d105766fb9532c\"\u003e\u003ccode\u003e0e94cc0\u003c/code\u003e\u003c/a\u003e v8.5.2 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9a583c566aa5aaeb8b94312e9e9dbf711f89e7b3\"\u003e\u003ccode\u003e9a583c5\u003c/code\u003e\u003c/a\u003e feat: simplify IPv6 key generation (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/4f4b3fb78f96ac841a26122be1d82123271d7654\"\u003e\u003ccode\u003e4f4b3fb\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump lint-staged from 16.4.0 to 17.0.4 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/632\"\u003e#632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/3c1d6c57bddc0d7c9923611fd1ac1e17399a4865\"\u003e\u003ccode\u003e3c1d6c5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/631\"\u003e#631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/18884b671441b14dd0e9328a5ebedf51278a16c1\"\u003e\u003ccode\u003e18884b6\u003c/code\u003e\u003c/a\u003e chore(deps): bump basic-ftp from 5.2.0 to 5.3.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/630\"\u003e#630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/dacc9800e640b14c61cd8791ef59d75d0ac037a7\"\u003e\u003ccode\u003edacc980\u003c/code\u003e\u003c/a\u003e chore(deps): bump handlebars from 4.7.8 to 4.7.9 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/629\"\u003e#629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/486d0c608a95f344863302bb213fb09ea9ddf5de\"\u003e\u003ccode\u003e486d0c6\u003c/code\u003e\u003c/a\u003e chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/627\"\u003e#627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/50cc3f6345f603ac2fe4eb646edd7338b9a31fbb\"\u003e\u003ccode\u003e50cc3f6\u003c/code\u003e\u003c/a\u003e 8.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92c8e3efd87b9b9f89092b1f9c8c17ac134c1293\"\u003e\u003ccode\u003e92c8e3e\u003c/code\u003e\u003c/a\u003e chore: bump ip-address library to latest (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.3.2...v8.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `helmet` from 8.1.0 to 8.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md\"\u003ehelmet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.0 - 2026-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCross-Origin-Opener-Policy\u003c/code\u003e: support \u003ccode\u003enoopener-allow-popups\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/helmetjs/helmet/pull/522\"\u003e#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove error message when passing duplicate options\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/638e43becc81d970778b0bae31703193e295816d\"\u003e\u003ccode\u003e638e43b\u003c/code\u003e\u003c/a\u003e 8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/fdf25a882da3cf0cd89343a6debdae725ec82515\"\u003e\u003ccode\u003efdf25a8\u003c/code\u003e\u003c/a\u003e Update changelog for 8.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/bd293b74d1bbf67e3eb17b1330f3339acca5d12c\"\u003e\u003ccode\u003ebd293b7\u003c/code\u003e\u003c/a\u003e Update devDependencies to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/81ce5cc33ddc8ff1ad621d0d62ab0d10528a1f05\"\u003e\u003ccode\u003e81ce5cc\u003c/code\u003e\u003c/a\u003e Test supported Node versions on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/807a888ded818a1857da5ada274c184cea05ef9e\"\u003e\u003ccode\u003e807a888\u003c/code\u003e\u003c/a\u003e Update to new URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/d4e0128652a05e99d1dc66df9c32a00e0db31597\"\u003e\u003ccode\u003ed4e0128\u003c/code\u003e\u003c/a\u003e Add direct link to FAQ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/437d2eb81363ecb57633e5717e81e4055a431e3e\"\u003e\u003ccode\u003e437d2eb\u003c/code\u003e\u003c/a\u003e Bump actions/setup-node from 6.3.0 to 6.4.0 (\u003ca href=\"https://redirect.github.com/helmetjs/helmet/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/a6bd779566f3c23b92b287b9df0c6305c80885e8\"\u003e\u003ccode\u003ea6bd779\u003c/code\u003e\u003c/a\u003e Upgrade actions/setup-node to 6.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/1e09f5fd8aee6a02dd871712049e31cec3e6fc45\"\u003e\u003ccode\u003e1e09f5f\u003c/code\u003e\u003c/a\u003e Fix changelog typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/d526f5c04578e8905b6a4c3e147b069927bad349\"\u003e\u003ccode\u003ed526f5c\u003c/code\u003e\u003c/a\u003e Bump Picomatch dev sub-dependency\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/helmetjs/helmet/compare/v8.1.0...v8.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 6.34.0 to 6.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-node/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.39.0\u003c/h2\u003e\n\u003ch2\u003e6.39.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.38.0...v6.39.0\"\u003ev6.38.0...v6.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-node/commit/33ea11fc5e7656990005cfb932584e0e646957d4\"\u003e33ea11f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/c210b09e71171b5aef844367f698ec4d8de95c2d\"\u003ec210b09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/92df9dc4a5519d2864ab7c25a3ee370806c9345d\"\u003e92df9dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-node/commit/c7c0f52df2278e40c9279d63a08c7a4bc55ea414\"\u003ec7c0f52\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e allow runtime fetch options (\u003ca href=\"https://github.com/openai/openai-node/commit/8f5003d3c13a0908ef80475a4f1c2e696e882101\"\u003e8f5003d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript:\u003c/strong\u003e upgrade tsc-multi so that it works with Node 26 (\u003ca href=\"https://github.com/openai/openai-node/commit/068f9c675bc02ffdacbef81103c5af858e03f971\"\u003e068f9c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-node/commit/9d43adb15e542ed10bd336078a309bc64bdb64f9\"\u003e9d43adb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e remove redundant File import (\u003ca href=\"https://github.com/openai/openai-node/commit/5465bbe74bdfe922eb0bc961b461656b4d002f5d\"\u003e5465bbe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.38.0\u003c/h2\u003e\n\u003ch2\u003e6.38.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.37.0...v6.38.0\"\u003ev6.37.0...v6.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-node/commit/423e838c498bd1b77f3b732cfc43c54fc5d261df\"\u003e423e838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.37.0\u003c/h2\u003e\n\u003ch2\u003e6.37.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.36.0...v6.37.0\"\u003ev6.36.0...v6.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add quantity field to admin organization usage responses (\u003ca href=\"https://github.com/openai/openai-node/commit/273a8f73e65839fb4d2ebc2a54ccc38383bd7517\"\u003e273a8f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results output option to responses (\u003ca href=\"https://github.com/openai/openai-node/commit/91c75e064f12946d3774cb182e5cd795000019ce\"\u003e91c75e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e launch realtime translate + update image 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/a296b661f0598ed001309d7deb693caa1596875c\"\u003ea296b66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/794b90513f5ca63bd95c6cf774722fa6aeae293d\"\u003e794b905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/69637293939580a9d20bd9274d86f23a012ffd87\"\u003e6963729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/f4b717702182adfc684270c0e7d5ff11d6c7a408\"\u003ef4b7177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-node/blob/master/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.39.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.38.0...v6.39.0\"\u003ev6.38.0...v6.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-node/commit/33ea11fc5e7656990005cfb932584e0e646957d4\"\u003e33ea11f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/c210b09e71171b5aef844367f698ec4d8de95c2d\"\u003ec210b09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/92df9dc4a5519d2864ab7c25a3ee370806c9345d\"\u003e92df9dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-node/commit/c7c0f52df2278e40c9279d63a08c7a4bc55ea414\"\u003ec7c0f52\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e allow runtime fetch options (\u003ca href=\"https://github.com/openai/openai-node/commit/8f5003d3c13a0908ef80475a4f1c2e696e882101\"\u003e8f5003d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript:\u003c/strong\u003e upgrade tsc-multi so that it works with Node 26 (\u003ca href=\"https://github.com/openai/openai-node/commit/068f9c675bc02ffdacbef81103c5af858e03f971\"\u003e068f9c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-node/commit/9d43adb15e542ed10bd336078a309bc64bdb64f9\"\u003e9d43adb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e remove redundant File import (\u003ca href=\"https://github.com/openai/openai-node/commit/5465bbe74bdfe922eb0bc961b461656b4d002f5d\"\u003e5465bbe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.38.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.37.0...v6.38.0\"\u003ev6.37.0...v6.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-node/commit/423e838c498bd1b77f3b732cfc43c54fc5d261df\"\u003e423e838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.37.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.36.0...v6.37.0\"\u003ev6.36.0...v6.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add quantity field to admin organization usage responses (\u003ca href=\"https://github.com/openai/openai-node/commit/273a8f73e65839fb4d2ebc2a54ccc38383bd7517\"\u003e273a8f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results output option to responses (\u003ca href=\"https://github.com/openai/openai-node/commit/91c75e064f12946d3774cb182e5cd795000019ce\"\u003e91c75e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e launch realtime translate + update image 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/a296b661f0598ed001309d7deb693caa1596875c\"\u003ea296b66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/794b90513f5ca63bd95c6cf774722fa6aeae293d\"\u003e794b905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/69637293939580a9d20bd9274d86f23a012ffd87\"\u003e6963729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/f4b717702182adfc684270c0e7d5ff11d6c7a408\"\u003ef4b7177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-node/commit/4fe8469a7c1f892d586df375a449f6bd0e318b15\"\u003e4fe8469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p...\n\n_Description has been truncated_","html_url":"https://github.com/REMEDiSSecurity/VulnRap.com/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/REMEDiSSecurity%2FVulnRap.com/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"4483956025","node_id":"PR_kwDODdTws87dZdx6","number":3229,"state":"open","title":"Bump the bundler group across 1 directory with 120 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T06:57:52.000Z","updated_at":"2026-05-27T04:33:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":120,"packages":[{"name":"bootsnap","old_version":"1.18.6","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"4.9.4","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"govuk-components","old_version":"5.11.3","new_version":"6.2.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"haml-rails","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/haml/haml-rails"},{"name":"oauth2","old_version":"2.0.17","new_version":"2.0.20","repository_url":"https://github.com/ruby-oauth/oauth2"},{"name":"omniauth-rails_csrf_protection","old_version":"1.0.2","new_version":"2.0.1","repository_url":"https://github.com/cookpad/omniauth-rails_csrf_protection"},{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"prometheus_exporter","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/discourse/prometheus_exporter"},{"name":"puma","old_version":"7.0.4","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.3","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"haml_lint","old_version":"0.66.0","new_version":"0.73.0","repository_url":"https://github.com/sds/haml-lint"},{"name":"rubocop","old_version":"1.80.2","new_version":"1.86.2","repository_url":"https://github.com/rubocop/rubocop"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"pry-byebug","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/deivid-rodriguez/pry-byebug"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.5","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"axe-core-rspec","old_version":"4.10.3","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-gems"},{"name":"brakeman","old_version":"7.1.0","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"i18n-tasks","old_version":"1.0.15","new_version":"1.1.2","repository_url":"https://github.com/glebm/i18n-tasks"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-capybara","old_version":"2.22.1","new_version":"2.23.0","repository_url":"https://github.com/rubocop/rubocop-capybara"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-performance","old_version":"1.26.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.35.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"},{"name":"selenium-webdriver","old_version":"4.35.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"vcr","old_version":"6.3.1","new_version":"6.4.0","repository_url":"https://github.com/vcr/vcr"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"pry","old_version":"0.15.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/rails/spring"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.6.4","repository_url":"https://github.com/ruby/net-imap"},{"name":"factory_bot","old_version":"6.5.5","new_version":"6.6.0","repository_url":"https://github.com/thoughtbot/factory_bot"},{"name":"faraday-follow_redirects","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/tisba/faraday-follow-redirects"},{"name":"json-jwt","old_version":"1.16.7","new_version":"1.17.0","repository_url":"https://github.com/nov/json-jwt"},{"name":"openid_connect","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/nov/openid_connect"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.24.5` |\n| [devise](https://github.com/heartcombo/devise) | `4.9.4` | `5.0.4` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `6.2.0` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `6.1.0` |\n| [haml-rails](https://github.com/haml/haml-rails) | `2.1.0` | `3.0.0` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.17` | `2.0.20` |\n| [omniauth-rails_csrf_protection](https://github.com/cookpad/omniauth-rails_csrf_protection) | `1.0.2` | `2.0.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.2` | `1.6.3` |\n| [prometheus_exporter](https://github.com/discourse/prometheus_exporter) | `2.3.0` | `2.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.4` | `8.0.2` |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [haml_lint](https://github.com/sds/haml-lint) | `0.66.0` | `0.73.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.2` | `1.86.2` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) | `3.11.0` | `3.12.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.5` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.10.3` | `4.11.3` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `7.1.0` | `8.0.4` |\n| [i18n-tasks](https://github.com/glebm/i18n-tasks) | `1.0.15` | `1.1.2` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.22.1` | `2.23.0` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.35.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.35.0` | `4.44.0` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [vcr](https://github.com/vcr/vcr) | `6.3.1` | `6.4.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [pry](https://github.com/pry/pry) | `0.15.2` | `0.16.0` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.4.0` | `4.6.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.6.4` |\n| [factory_bot](https://github.com/thoughtbot/factory_bot) | `6.5.5` | `6.6.0` |\n| [faraday-follow_redirects](https://github.com/tisba/faraday-follow-redirects) | `0.3.0` | `0.5.0` |\n| [json-jwt](https://github.com/nov/json-jwt) | `1.16.7` | `1.17.0` |\n| [openid_connect](https://github.com/nov/openid_connect) | `2.3.1` | `2.4.0` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n\n\nUpdates `bootsnap` from 1.18.6 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 4.9.4 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0.rc\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.0 - 2026-01-23\u003c/h3\u003e\n\u003cp\u003eno changes\u003c/p\u003e\n\u003ch3\u003e5.0.0.rc - 2025-12-31\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebreaking changes\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Ruby \u0026lt; 2.7\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Rails \u0026lt; 7.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003e:bypass\u003c/code\u003e option from \u003ccode\u003esign_in\u003c/code\u003e helper, use \u003ccode\u003ebypass_sign_in\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003edevise_error_messages!\u003c/code\u003e helper, use \u003ccode\u003erender \u0026quot;devise/shared/error_messages\u0026quot;, resource: resource\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003escope\u003c/code\u003e second argument from \u003ccode\u003esign_in(resource, :admin)\u003c/code\u003e controller test helper, use \u003ccode\u003esign_in(resource, scope: :admin)\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::TestHelpers\u003c/code\u003e, use \u003ccode\u003eDevise::Test::ControllerHelpers\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5598\"\u003e#5598\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise.activerecord51?\u003c/code\u003e method.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSecretKeyFinder\u003c/code\u003e and use \u003ccode\u003eapp.secret_key_base\u003c/code\u003e as the default secret key for \u003ccode\u003eDevise.secret_key\u003c/code\u003e if a custom \u003ccode\u003eDevise.secret_key\u003c/code\u003e is not provided.\u003c/p\u003e\n\u003cp\u003eThis is potentially a breaking change because Devise previously used the following order to find a secret key:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapp.credentials.secret_key_base \u0026gt; app.secrets.secret_key_base \u0026gt; application.config.secret_key_base \u0026gt; application.secret_key_base\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, it always uses \u003ccode\u003eapplication.secret_key_base\u003c/code\u003e. Make sure you're using the same secret key after the upgrade; otherwise, previously generated tokens for \u003ccode\u003erecoverable\u003c/code\u003e, \u003ccode\u003elockable\u003c/code\u003e, and \u003ccode\u003econfirmable\u003c/code\u003e will be invalid.\n\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5645\"\u003e#5645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password instructions button label on devise view from \u003ccode\u003eSend me reset password instructions\u003c/code\u003e to \u003ccode\u003eSend me password reset instructions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5515\"\u003e#5515\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange \u003ccode\u003e\u0026lt;br\u0026gt;\u003c/code\u003e tags separating form elements to wrapping them in \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tags \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003e#5494\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e with \u003ccode\u003e[data-turbo-temporary]\u003c/code\u003e on \u003ccode\u003edevise/shared/error_messages\u003c/code\u003e partial. This has been \u003ca href=\"https://github.com/hotwired/turbo/releases/tag/v7.3.0\"\u003edeprecated by Turbo since v7.3.0 (released on Mar 1, 2023)\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v4.9.4...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-components` from 5.11.3 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-components/releases\"\u003egovuk-components's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease version 6.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to ViewComponent 4.9.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/639\"\u003e#639\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate supported Ruby, Rails and ViewComponent versions\u003c/li\u003e\n\u003cli\u003eSupport GOV.UK Design System version 6.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport GOV.UK Design System version 6.0.0\u003c/li\u003e\n\u003cli\u003eremove the service name and navigation items from the header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate the govuk_tag colours (magenta replaces pink and teal replaces turquoise) \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport ViewComponent version 4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eThe service name and navigation items have been removed from the header. Instead, passing a block of HTML to the header will render it in the \u003ccode\u003e.govuk-header__container\u003c/code\u003e. You'll need to add your own styles to make things render in the right place. There are examples \u003ca href=\"https://govuk-components.x-govuk.org/components/header/#adding-more-content-to-the-header\"\u003ein the guide\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/DFE-Digital/register-early-career-teachers-public/pull/2327\"\u003ein this PR\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\u003cbr /\u003e\nThe GOV.UK Header Component has changed significantly, \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-beta.1\"\u003esee the upstream release notes for more info\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-rc.0\"\u003eGOV.UK frontend 6.0.0-rc0\u003c/a\u003e \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove navigation items and service name from GOV.UK Header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ViewComponent support to 4.3 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/628\"\u003e#628\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug in the service nav where \u003ccode\u003earia-current=\u0026quot;true\u0026quot;\u003c/code\u003e was showing where it shouldn't have been. Thanks \u003ca href=\"https://github.com/DavidBiddle\"\u003e\u003ccode\u003e@​DavidBiddle\u003c/code\u003e\u003c/a\u003e for diagnosing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/621\"\u003e#621\u003c/a\u003e) and fixing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/622\"\u003e#622\u003c/a\u003e) this :heart:\u003c/li\u003e\n\u003cli\u003eChange some links in the docs from netlify.app to x-govuk.org\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8.1. Thanks \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003eAdd Netlify link to the footer to qualify for Netlify's open source plan which we're using for the \u003ca href=\"https://govuk-components.x-govuk.org/\"\u003enew guide domain\u003c/a\u003e  ccb566fd4cd1ed5a8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/809b3f600955bd4ece674bf48d2d771316b26984\"\u003e\u003ccode\u003e809b3f6\u003c/code\u003e\u003c/a\u003e Release version 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/eaa67a7450ce4073f7bdf4eb98e52da0505446d0\"\u003e\u003ccode\u003eeaa67a7\u003c/code\u003e\u003c/a\u003e Update dependency on view_component (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/54a40cab35294db87c786dad1ff51cc496e6c0be\"\u003e\u003ccode\u003e54a40ca\u003c/code\u003e\u003c/a\u003e Update dependency on view_component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d7ef30fd9e4e6417a956feb14b79997c099c74e9\"\u003e\u003ccode\u003ed7ef30f\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.2.0 to = 5.2.1 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/a7d146ecdbd2f41e5a12460aacde76c7dbf3e4c9\"\u003e\u003ccode\u003ea7d146e\u003c/code\u003e\u003c/a\u003e Fix heredoc indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c8af345df5348cad4cccf3b5f4dfca7619025b25\"\u003e\u003ccode\u003ec8af345\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.2.0 to = 5.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/8a8e3811011b03a0b313170b1beb6aa3ad26cd5f\"\u003e\u003ccode\u003e8a8e381\u003c/code\u003e\u003c/a\u003e Change slot example on view component page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d0a5d8d2becbbee616a93c9160c457edc053f43d\"\u003e\u003ccode\u003ed0a5d8d\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9b10ed070a94ea6bee9e477cb04da0bf8e987eb5\"\u003e\u003ccode\u003e9b10ed0\u003c/code\u003e\u003c/a\u003e Various version bumps (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9cfa5a8ab3477672b24aa2c5c0e3ffaf49b5e25f\"\u003e\u003ccode\u003e9cfa5a8\u003c/code\u003e\u003c/a\u003e Bump supported ViewComponent to 4.6.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk_design_system_formbuilder` from 5.11.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/releases\"\u003egovuk_design_system_formbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to govuk-frontend 6.1.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport defining text options for file upload component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e, thank you \u003ca href=\"https://github.com/stephencdaly\"\u003e\u003ccode\u003e@​stephencdaly\u003c/code\u003e\u003c/a\u003e for contributing this\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to govuk-frontend 5.13.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evarious minor version bumps\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/5cbe8f6e79a805327b72f09ee191cd58f09587fc\"\u003e\u003ccode\u003e5cbe8f6\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/3b721e9ba3e3cf1a685cb3dd3dbca3aeb9604150\"\u003e\u003ccode\u003e3b721e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e from x-govuk/govuk-frontend-6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1169b60d51f775aed34960bb636106efa2042ffd\"\u003e\u003ccode\u003e1169b60\u003c/code\u003e\u003c/a\u003e Update supported versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/81733638cc0ceace44e85b2fc9ef0393362bef01\"\u003e\u003ccode\u003e8173363\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c96270cb8cc861c40d0a6155355cbdfc8f9831eb\"\u003e\u003ccode\u003ec96270c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/617\"\u003e#617\u003c/a\u003e from x-govuk/fix-guide-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d6f4e390ac6f51b7120a3f3efa73669f74ed9f50\"\u003e\u003ccode\u003ed6f4e39\u003c/code\u003e\u003c/a\u003e Reqire 'active_model' in guide perosn class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b156fe78df8f74dc1574b16449d0515a9ddcd174\"\u003e\u003ccode\u003eb156fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e from stephencdaly/add-options-to-file-upload-for-java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1c573ccc92b156684ee56a02329c7ca3bb3e7947\"\u003e\u003ccode\u003e1c573cc\u003c/code\u003e\u003c/a\u003e Add example to guide for setting custom text for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/9ed0f9573b7f015f79ccbf9c67a9e5dd91c8ba58\"\u003e\u003ccode\u003e9ed0f95\u003c/code\u003e\u003c/a\u003e Support defining text options for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/a12d0c63e346946540d5cb8af44128c04fc55f8e\"\u003e\u003ccode\u003ea12d0c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/611\"\u003e#611\u003c/a\u003e from x-govuk/dependabot/bundler/slim_lint-tw-0.34.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `haml-rails` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/6c7c8ca772b2c8d36b58278c2c09498385979f85\"\u003e\u003ccode\u003e6c7c8ca\u003c/code\u003e\u003c/a\u003e Version 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e364abbc6a54f84b344c1ec846d683f927e1ae59\"\u003e\u003ccode\u003ee364abb\u003c/code\u003e\u003c/a\u003e Just use the newest one\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/30005dc31f9926dac33ba776389e9456e068b20f\"\u003e\u003ccode\u003e30005dc\u003c/code\u003e\u003c/a\u003e [CI] uses: actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e639b11fe1571cdc1e8bb48143d13a63110e09e1\"\u003e\u003ccode\u003ee639b11\u003c/code\u003e\u003c/a\u003e Properly state the supported version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/3e1b70552ca28a42a4741d3bfd3cf7cf379c6486\"\u003e\u003ccode\u003e3e1b705\u003c/code\u003e\u003c/a\u003e frozen_string_literal: ❄️\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/2c51fd5848e6d36e36f831cf827578003525d08f\"\u003e\u003ccode\u003e2c51fd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haml/haml-rails/issues/197\"\u003e#197\u003c/a\u003e from amatsuda/rails_versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/9f4703ddff0644ba52529c5cf41c1624829b16a7\"\u003e\u003ccode\u003e9f4703d\u003c/code\u003e\u003c/a\u003e Fall back to the newest templates by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/f0a9ff88ef682af3d6023e1d453ed978597abd72\"\u003e\u003ccode\u003ef0a9ff8\u003c/code\u003e\u003c/a\u003e Rails 5.1 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/852cf01c9831ee09049f7b990a648d441c876093\"\u003e\u003ccode\u003e852cf01\u003c/code\u003e\u003c/a\u003e Rails 5.2 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/8bb0351a85b83e81d1b27f18fdda17a77961c1af\"\u003e\u003ccode\u003e8bb0351\u003c/code\u003e\u003c/a\u003e Rails 6.0 scaffold templates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haml/haml-rails/compare/v2.1.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.17 to 2.0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.19...v2.0.20\"\u003e2.0.20\u003c/a\u003e - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.20\"\u003ev2.0.20\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e][🖇buyme] \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/O5O86SNP4\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.20] - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.20][2.0.20t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003ch2\u003e[2.0.19] - 2026-05-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.19][2.0.19t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 515/515 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files\u003c/li\u003e\n\u003cli\u003e89.11% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_label]\u003c/code\u003e to configure the placeholder used for filtered sensitive values in inspected objects and debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_debug_keys]\u003c/code\u003e to configure which key names have their values redacted from debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Make inspect-time and debug-log filters snapshot their configuration at initialization time rather than tracking later config changes by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[gh!714][gh!714]Refactor sensitive-value filtering to use \u003ccode\u003eauth-sanitizer\u003c/code\u003e while preserving \u003ccode\u003eOAuth2::FilteredAttributes\u003c/code\u003e as a permanent API alias by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the internal \u003ccode\u003eOAuth2::ThingFilter\u003c/code\u003e and \u003ccode\u003eOAuth2::SanitizedLogger\u003c/code\u003e implementations now provided by \u003ccode\u003eauth-sanitizer\u003c/code\u003e by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Redact sensitive values from debug logging output, including Authorization headers and common token/secret fields in headers, query strings, form bodies, and JSON payloads by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNOTE: debug logging has always been, and remains, opt-in. It is turned off by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/e2d509705db6091c8d5f27c31e29c58e39e51c7c\"\u003e\u003ccode\u003ee2d5097\u003c/code\u003e\u003c/a\u003e 🔧 :nocov: for unreachable error states\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/30650b2e1cb743e3263181e8b8a32c57ef33b9fb\"\u003e\u003ccode\u003e30650b2\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/23f2855f1b0053a38b6b5df00c870d83db761c31\"\u003e\u003ccode\u003e23f2855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/721\"\u003e#721\u003c/a\u003e from ruby-oauth/fix/top-level-namespace-pollution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5e4c98831ecb68ec446fcc99be0af40e6e68490c\"\u003e\u003ccode\u003e5e4c988\u003c/code\u003e\u003c/a\u003e Fix RuboCop Gradual offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/89397f699bd6903c5ac3a9927d1743984a946dc5\"\u003e\u003ccode\u003e89397f6\u003c/code\u003e\u003c/a\u003e Constrain auth-sanitizer loader lookup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/8e71e19890fe486d7d260eb29ec67eb5ac1e75d0\"\u003e\u003ccode\u003e8e71e19\u003c/code\u003e\u003c/a\u003e 📝 CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/6082a21c5628b270953dc9edb0af57dafb36e194\"\u003e\u003ccode\u003e6082a21\u003c/code\u003e\u003c/a\u003e ⬆️ snaky_hash, faraday-net_http, zeitwerk, bundler-audit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/350da4214e9285fd88e21a9859d049dc8e954a25\"\u003e\u003ccode\u003e350da42\u003c/code\u003e\u003c/a\u003e Avoid auth-sanitizer top-level namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0bc19030c2226ab16fc237b547e95d90ed8fa2e9\"\u003e\u003ccode\u003e0bc1903\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/719\"\u003e#719\u003c/a\u003e from step-security-bot/chore/GHA-182236-stepsecurity-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/148d716337a530494895091fe3b4359a410212a5\"\u003e\u003ccode\u003e148d716\u003c/code\u003e\u003c/a\u003e Switch pre-commit hook to rubocop_gradual\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-rails_csrf_protection` from 1.0.2 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/releases\"\u003eomniauth-rails_csrf_protection's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix an issue with configuration delegation in Rails \u0026lt; 8.1 (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/26\"\u003e#26\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor more details, please see 1a0d39099957675f549e1f23c836f57b99b09a00.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop using deprecated \u003ccode\u003eActiveSupport::Configurable\u003c/code\u003e when this gem is running against Action Pack version 8.1 and later (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/23\"\u003e#23\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c4f53d72e6a278c02f1a6d294c4f8004354ee0b7\"\u003e\u003ccode\u003ec4f53d7\u003c/code\u003e\u003c/a\u003e Bump to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/1a0d39099957675f549e1f23c836f57b99b09a00\"\u003e\u003ccode\u003e1a0d390\u003c/code\u003e\u003c/a\u003e Fix an issue with configuration delegation in Rails \u0026lt; 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/bc315e1b09fbf6a363d5293067b42675f020fc4c\"\u003e\u003ccode\u003ebc315e1\u003c/code\u003e\u003c/a\u003e Properly silence Rails 8.0.x warning message in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/23483750b4a0a803347e02778b975886ecb82875\"\u003e\u003ccode\u003e2348375\u003c/code\u003e\u003c/a\u003e Bump to 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c283d1d159a292c5fce8ed1a2f5997f6bde209f5\"\u003e\u003ccode\u003ec283d1d\u003c/code\u003e\u003c/a\u003e Update README to add OmniAuth's built-in solution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/2cf722bd7cc310009ee626cce28a7ea52b47f649\"\u003e\u003ccode\u003e2cf722b\u003c/code\u003e\u003c/a\u003e Add workaround for deprecated AS::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/431597eb44ff8ae0bf9802d1a1dc85ebb8d2cfa3\"\u003e\u003ccode\u003e431597e\u003c/code\u003e\u003c/a\u003e Silence \u003ccode\u003e#to_time\u003c/code\u003e warning in Rails 8.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/5e9c8a27b0ccac54ca3bec7f3b49d43ddefdc4d6\"\u003e\u003ccode\u003e5e9c8a2\u003c/code\u003e\u003c/a\u003e Print Ruby version in the test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/3e62c0572bf5c9796fff5fe197f07d5ed172a7c5\"\u003e\u003ccode\u003e3e62c05\u003c/code\u003e\u003c/a\u003e Remove unnecessary logger gem entry in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/f9810a5886d692312c6d015914fdad00cf7f41b2\"\u003e\u003ccode\u003ef9810a5\u003c/code\u003e\u003c/a\u003e Update build matrix and fix build errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/compare/v1.0.2...v2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus_exporter` from 2.3.0 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/discourse/prometheus_exporter/blob/main/CHANGELOG\"\u003eprometheus_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2025-11-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: get controller full path instead of controller name - Alex Platteeuw\u003c/li\u003e\n\u003cli\u003eFEATURE: Secure PrometheusExporter scraping with SSL - Nicolas Rodriquez\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/15e9d4783db8267fb3b0c48e5464ec4c1ae58c00\"\u003e\u003ccode\u003e15e9d47\u003c/code\u003e\u003c/a\u003e version bump (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bd3817744bb5011aed6c669696ed957c23cd3fe\"\u003e\u003ccode\u003e4bd3817\u003c/code\u003e\u003c/a\u003e fix: get controller full path instead of controller name (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bb4fa333386b166a745df92be5620b11be3872a\"\u003e\u003ccode\u003e4bb4fa3\u003c/code\u003e\u003c/a\u003e Secure PrometheusExporter scraping with SSL (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/b10933453f0952cd17d143487c5adc8bb74b492a\"\u003e\u003ccode\u003eb109334\u003c/code\u003e\u003c/a\u003e Add connect_timeout: settings to PrometheusExporter::Client (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/discourse/prometheus_exporter/compare/v2.3.0...v2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.0.4 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.4...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.3 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccod...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3229","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3229","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3229/packages"},{"uuid":"4458911143","node_id":"PR_kwDOCSVaMM7cKhYW","number":7367,"state":"closed","title":"build(deps): bump the minor-and-patch group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-19T03:21:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T06:23:56.000Z","updated_at":"2026-05-19T03:21:26.000Z","time_to_close":248248,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":67,"packages":[{"name":"aws-actionmailer-ses","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/aws/aws-actionmailer-ses-ruby"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"kt-paperclip","old_version":"7.2.2","new_version":"7.3.0","repository_url":"https://github.com/kreeti/kt-paperclip"},{"name":"omniauth","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/omniauth/omniauth"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"rails","old_version":"8.0.5","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"terser","old_version":"1.2.6","new_version":"1.2.7","repository_url":"https://github.com/ahorek/terser-ruby"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/rails/jbuilder"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.5","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"geocoder","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/alexreisner/geocoder"},{"name":"pundit","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/varvet/pundit"},{"name":"ahoy_matey","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/ankane/ahoy"},{"name":"i18n-js","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/fnando/i18n-js"},{"name":"pg","old_version":"1.6.1","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.24.4","repository_url":"https://github.com/rails/bootsnap"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"flipper-redis","old_version":"1.3.6","new_version":"1.4.2","repository_url":"https://github.com/flippercloud/flipper"},{"name":"friendly_id","old_version":"5.5.1","new_version":"5.7.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rails-i18n","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/svenfuchs/rails-i18n"},{"name":"recaptcha","old_version":"5.20.1","new_version":"5.21.2","repository_url":"https://github.com/ambethia/recaptcha"},{"name":"strong_migrations","old_version":"2.5.0","new_version":"2.8.0","repository_url":"https://github.com/ankane/strong_migrations"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-performance","old_version":"1.25.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.6.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rbs_rails","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/pocke/rbs_rails"},{"name":"json-schema","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/voxpupuli/json-schema"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"undercover","old_version":"0.8.0","new_version":"0.8.5","repository_url":"https://github.com/grodowski/undercover"},{"name":"capybara-playwright-driver","old_version":"0.5.7","new_version":"0.5.9","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"lookbook","old_version":"2.3.13","new_version":"2.3.14","repository_url":"https://github.com/lookbook-hq/lookbook"},{"name":"oj","old_version":"3.16.11","new_version":"3.17.1","repository_url":"https://github.com/ohler55/oj"},{"name":"rack-attack","old_version":"6.7.0","new_version":"6.8.0","repository_url":"https://github.com/rack/rack-attack"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.222.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-sdk","old_version":"1.8.1","new_version":"1.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-exporter-otlp","old_version":"0.30.0","new_version":"0.34.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.8.0","new_version":"0.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.12.0","new_version":"2.16.0","repository_url":"https://github.com/Shopify/maintenance_tasks"},{"name":"stackprof","old_version":"0.2.27","new_version":"0.2.28","repository_url":"https://github.com/tmm1/stackprof"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"avo","old_version":"3.31.0","new_version":"3.31.2","repository_url":"https://github.com/avo-hq/avo"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 48 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-actionmailer-ses](https://github.com/aws/aws-actionmailer-ses-ruby) | `1.0.0` | `1.1.0` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [kt-paperclip](https://github.com/kreeti/kt-paperclip) | `7.2.2` | `7.3.0` |\n| [omniauth](https://github.com/omniauth/omniauth) | `2.1.3` | `2.1.4` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.2` |\n| [rails](https://github.com/rails/rails) | `8.0.5` | `8.1.3` |\n| [terser](https://github.com/ahorek/terser-ruby) | `1.2.6` | `1.2.7` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.0` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.5` |\n| [geocoder](https://github.com/alexreisner/geocoder) | `1.8.5` | `1.8.6` |\n| [pundit](https://github.com/varvet/pundit) | `2.5.0` | `2.5.2` |\n| [ahoy_matey](https://github.com/ankane/ahoy) | `5.4.0` | `5.5.0` |\n| [i18n-js](https://github.com/fnando/i18n-js) | `4.2.3` | `4.2.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.1` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.24.4` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [flipper-redis](https://github.com/flippercloud/flipper) | `1.3.6` | `1.4.2` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.5.1` | `5.7.0` |\n| [rails-i18n](https://github.com/svenfuchs/rails-i18n) | `8.0.2` | `8.1.0` |\n| [recaptcha](https://github.com/ambethia/recaptcha) | `5.20.1` | `5.21.2` |\n| [strong_migrations](https://github.com/ankane/strong_migrations) | `2.5.0` | `2.8.0` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.5.0` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.25.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.35.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.6.0` | `3.9.0` |\n| [rbs_rails](https://github.com/pocke/rbs_rails) | `0.12.1` | `0.13.1` |\n| [json-schema](https://github.com/voxpupuli/json-schema) | `6.0.0` | `6.2.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [undercover](https://github.com/grodowski/undercover) | `0.8.0` | `0.8.5` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.7` | `0.5.9` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [lookbook](https://github.com/lookbook-hq/lookbook) | `2.3.13` | `2.3.14` |\n| [oj](https://github.com/ohler55/oj) | `3.16.11` | `3.17.1` |\n| [rack-attack](https://github.com/rack/rack-attack) | `6.7.0` | `6.8.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.222.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-ruby) | `1.8.1` | `1.12.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-ruby) | `0.30.0` | `0.34.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.8.0` | `0.12.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.12.0` | `2.16.0` |\n| [stackprof](https://github.com/tmm1/stackprof) | `0.2.27` | `0.2.28` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n| [avo](https://github.com/avo-hq/avo) | `3.31.0` | `3.31.2` |\n\n\nUpdates `aws-actionmailer-ses` from 1.0.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/releases\"\u003eaws-actionmailer-ses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.1.0 - 2026-03-31\u003c/h2\u003e\n\u003cp\u003eTag release v1.1.0\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/blob/main/CHANGELOG.md\"\u003eaws-actionmailer-ses's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/87d57bae1d2da68729c639da957c89b4f14eef02\"\u003e\u003ccode\u003e87d57ba\u003c/code\u003e\u003c/a\u003e Bumped version to v1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/55de5a801bc2f819acda6521fa7efab8e72829bb\"\u003e\u003ccode\u003e55de5a8\u003c/code\u003e\u003c/a\u003e Allow precreated SESv2 client (issue \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/0e7a21034d43615e7765bb96c84f09f43fe80e1f\"\u003e\u003ccode\u003e0e7a210\u003c/code\u003e\u003c/a\u003e Scope down GitHub token permissions for ci.yml (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/c2b91df4f58ed7da035c953ecfd4f9847da46ebb\"\u003e\u003ccode\u003ec2b91df\u003c/code\u003e\u003c/a\u003e Update CI to include 3.4 (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/aab2974887db3c4d525f9e18c3f1ae7c6513d230\"\u003e\u003ccode\u003eaab2974\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/ce6af36916d5ab9224bf193690d98f539585f208\"\u003e\u003ccode\u003ece6af36\u003c/code\u003e\u003c/a\u003e Added next release section to the changelog. [ci skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/compare/v1.0.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv-rails` from 3.1.8 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bkeepers/dotenv/releases\"\u003edotenv-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBoost app startup time by removing to_sentence usage by \u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in variables in commands by \u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow warning when a env var was not overwritten by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/531\"\u003ebkeepers/dotenv#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix a few small issues by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/532\"\u003ebkeepers/dotenv#532\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ehttps://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/34156bf400cd67387fa6ed9f146778f6a2f5f743\"\u003e\u003ccode\u003e34156bf\u003c/code\u003e\u003c/a\u003e Prepare for 3.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/ab478201bdb487bfebd9e89875fd4edcf19dc064\"\u003e\u003ccode\u003eab47820\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/531\"\u003e#531\u003c/a\u003e from grosser/grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/fae61202e432f39742e2592817cc7bb38f559852\"\u003e\u003ccode\u003efae6120\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/4f510f41073cabb9786e3a5ea57263933497e696\"\u003e\u003ccode\u003e4f510f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/532\"\u003e#532\u003c/a\u003e from grosser/grosser/fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/959e1dac9d933a7ffe6a2ab17081f8235b7822a9\"\u003e\u003ccode\u003e959e1da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/539\"\u003e#539\u003c/a\u003e from bkeepers/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/041451e4ef7fd3a4ea604fcabef0cfb6fb5e79a3\"\u003e\u003ccode\u003e041451e\u003c/code\u003e\u003c/a\u003e Update spec message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/b300f262bdf1cfd6ac5215fd44baa771753702b9\"\u003e\u003ccode\u003eb300f26\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/5f4ca012b03c82343ad3f926e2fd281aa30a434b\"\u003e\u003ccode\u003e5f4ca01\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/209dca47e453f7288aac9f31330e67e3f0b83e78\"\u003e\u003ccode\u003e209dca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/540\"\u003e#540\u003c/a\u003e from i7an/handle-parentheses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/48c495683008c5dd1816a89329e59f8386324bb2\"\u003e\u003ccode\u003e48c4956\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into handle-parentheses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kt-paperclip` from 7.2.2 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/releases\"\u003ekt-paperclip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using \u003ccode\u003eAws::S3::TransferManager\u003c/code\u003e if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature - add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1 - Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/135\"\u003e#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/139\"\u003e#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/134\"\u003e#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oz-tal\"\u003e\u003ccode\u003e@​oz-tal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zz9pzza\"\u003e\u003ccode\u003e@​zz9pzza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unijewski\"\u003e\u003ccode\u003e@​unijewski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lorennorman\"\u003e\u003ccode\u003e@​lorennorman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/146\"\u003ekreeti/kt-paperclip#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cgunther\"\u003e\u003ccode\u003e@​cgunther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jukra\"\u003e\u003ccode\u003e@​jukra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ehttps://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/blob/master/CHANGELOG.md\"\u003ekt-paperclip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.3.0 (2026-01-31)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/158\"\u003ekreeti/kt-paperclip#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using Aws::S3::TransferManager if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature: Add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1: Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/139\"\u003ekreeti/kt-paperclip#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/818f236aa6f2323bd0055bea664b33187d926377\"\u003e\u003ccode\u003e818f236\u003c/code\u003e\u003c/a\u003e Deperecate NEWS to OLD-NEWS, see release notes for correct and accurate list ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/a38ed66b5d08210a4326b0d78e2116d0946fa3c2\"\u003e\u003ccode\u003ea38ed66\u003c/code\u003e\u003c/a\u003e prepare for new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/8820cb221210bf04ca2de278dab594adfa46efe5\"\u003e\u003ccode\u003e8820cb2\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/154\"\u003e#154\u003c/a\u003e] remove BOM from gd locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/cd5c4496d12894eafa218cb631c592b67c9c10a2\"\u003e\u003ccode\u003ecd5c449\u003c/code\u003e\u003c/a\u003e Fix S3 TransferManager to use configured client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/f017c401218da5a1e106ed3dd964b51d601bac5b\"\u003e\u003ccode\u003ef017c40\u003c/code\u003e\u003c/a\u003e Make usage of Aws::S3::TransferManager conditional based on availability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/233b4756745c2610988796a0059408a50d322b92\"\u003e\u003ccode\u003e233b475\u003c/code\u003e\u003c/a\u003e Support aws-sdk-s3 \u0026gt;= 1.196.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/e20e848c80ce16f18dae2162d5e00be0d9b51421\"\u003e\u003ccode\u003ee20e848\u003c/code\u003e\u003c/a\u003e Fix the use of deprecated methods from \u003ccode\u003eaws-sdk-s3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/5078ca1c33c8cb66865e6127152ac1e240b2bb0a\"\u003e\u003ccode\u003e5078ca1\u003c/code\u003e\u003c/a\u003e Fix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/153e7dbe462de4f7f3ef42c67f95390e98e6cba7\"\u003e\u003ccode\u003e153e7db\u003c/code\u003e\u003c/a\u003e fix frozen string literal deprecation warning (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/83dc8d92e63e4c360bb9f45af1cf3b63d99bed54\"\u003e\u003ccode\u003e83dc8d9\u003c/code\u003e\u003c/a\u003e Update LICENSE\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omniauth/omniauth/releases\"\u003eomniauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ruby 3.4 to CI by \u003ca href=\"https://github.com/tejasbubane\"\u003e\u003ccode\u003e@​tejasbubane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1142\"\u003eomniauth/omniauth#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd after_request_phase callback hook by \u003ca href=\"https://github.com/gerardo-navarro\"\u003e\u003ccode\u003e@​gerardo-navarro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1147\"\u003eomniauth/omniauth#1147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ehttps://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou may now configure an after_request_phase callback on your omniauth builder instance. This callback will be run after the request phase before returning the request result.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/20ac5e05a39d58d18aca6419599f7176208f985d\"\u003e\u003ccode\u003e20ac5e0\u003c/code\u003e\u003c/a\u003e 3.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/3a249afad83e4522bd4761404cbdc89fd56a1079\"\u003e\u003ccode\u003e3a249af\u003c/code\u003e\u003c/a\u003e Add after_request_phase callback hook (\u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/0bcfd5b25bf946422cd4d9c40c4f514121ac04d6\"\u003e\u003ccode\u003e0bcfd5b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1142\"\u003e#1142\u003c/a\u003e from tejasbubane/ruby-3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/09ee92e658878f31ab51f29e02d41296cfe36111\"\u003e\u003ccode\u003e09ee92e\u003c/code\u003e\u003c/a\u003e include cgi in test group due to removal of cookie\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/abfde9072cef0e4d89463daf6185ac68520087f7\"\u003e\u003ccode\u003eabfde90\u003c/code\u003e\u003c/a\u003e add dependency on logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/844548c8641d1a3b65c9062e67e073fa8bf39936\"\u003e\u003ccode\u003e844548c\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/5158faa94a620d8ec4d9ce400aabfef3a3844dd9\"\u003e\u003ccode\u003e5158faa\u003c/code\u003e\u003c/a\u003e Add release date to CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c5f46005e0207d2e436cf0db37c85170cca04da7\"\u003e\u003ccode\u003ec5f4600\u003c/code\u003e\u003c/a\u003e Update docs and examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/4c14af8e1e6dc2615da908c50e4b0b757972922e\"\u003e\u003ccode\u003e4c14af8\u003c/code\u003e\u003c/a\u003e Backfill missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e66d0bbe6ad91f9f5a60056dae2ebf850373f249\"\u003e\u003ccode\u003ee66d0bb\u003c/code\u003e\u003c/a\u003e Clean up dead code, modernize CI, and prep 1.2.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/b902e8e7585e8e3610040d9c770f2d4e90b6f132\"\u003e\u003ccode\u003eb902e8e\u003c/code\u003e\u003c/a\u003e Modernize CI: bump rubocop, checkout action, and tooling defaults\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ac9a979db8ee097971d5d70c12142070c539d8ab\"\u003e\u003ccode\u003eac9a979\u003c/code\u003e\u003c/a\u003e Add Ruby 4.0 to CI (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/d3f1c912e438ccf6aba577c66772bf2e37373d73\"\u003e\u003ccode\u003ed3f1c91\u003c/code\u003e\u003c/a\u003e Add GitHub pages config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/253f023cdd8a5d5e05b3fed9aa00ae478a6c2997\"\u003e\u003ccode\u003e253f023\u003c/code\u003e\u003c/a\u003e Remove calendar scope on example app\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/baaf3b755ea1a02c9f811fd513b0fe90fdd2defb\"\u003e\u003ccode\u003ebaaf3b7\u003c/code\u003e\u003c/a\u003e chore(doc): update JavaScript example in README (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/dcea9d208416b53af0956d95ce54daa424d36490\"\u003e\u003ccode\u003edcea9d2\u003c/code\u003e\u003c/a\u003e Add Ruby 3.3 and 3.4 to CI matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.5 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.5...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `terser` from 1.2.6 to 1.2.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md\"\u003eterser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.7 (23 March 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded a new module option to enable minification of ES6 modules (default is false)\u003c/li\u003e\n\u003cli\u003eupdate TerserJS to [5.46.1]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/14243401aadac062e738fde86525f261c37b1782\"\u003e\u003ccode\u003e1424340\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/67\"\u003e#67\u003c/a\u003e from ahorek/terser5461\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/ae1669dba36b571932a25685765932103db89189\"\u003e\u003ccode\u003eae1669d\u003c/code\u003e\u003c/a\u003e terser 5.46.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/c8b1c3213847dfeb85e1769958ecf9753651e697\"\u003e\u003ccode\u003ec8b1c32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/64\"\u003e#64\u003c/a\u003e from ahorek/module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/3a614841138d5c1dcf79d6362e22ad5b0a0b19f3\"\u003e\u003ccode\u003e3a61484\u003c/code\u003e\u003c/a\u003e add a module option\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ahorek/terser-ruby/compare/1.2.6...1.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/9a921d3b816cd4d858c9aba05c5f30fa9db70e3d\"\u003e\u003ccode\u003e9a921d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/604\"\u003e#604\u003c/a\u003e from affinity/moberegger/optimize-set-and-array-dsl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/363c3c8d850ba8ff198c05131217fcfb026d0c0a\"\u003e\u003ccode\u003e363c3c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/614\"\u003e#614\u003c/a\u003e from alexceder/make-method-missing-private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/26c236c9353f28b1ac9a5438dea34fcd340c6b6f\"\u003e\u003ccode\u003e26c236c\u003c/code\u003e\u003c/a\u003e Make method_missing private\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.3 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.3...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.0.7 to 8.1.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInitial release for \u003ccode\u003ekiq\u003c/code\u003e, Sidekiq's official terminal UI:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003ebundle exec kiq\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUse REDIS_URL or REDIS_PROVIDER to point \u003ccode\u003ekiq\u003c/code\u003e to Redis.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMutation during iteration in \u003ccode\u003eSortedSet#each\u003c/code\u003e caused it to miss half of the jobs \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6936\"\u003e#6936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case resulting in nil crash on /busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6954\"\u003e#6954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDEPRECATION\u003c/strong\u003e \u003ccode\u003erequire 'sidekiq/testing'\u003c/code\u003e and\n\u003ccode\u003erequire 'sidekiq/testing/inline'\u003c/code\u003e.\nAdd new \u003ccode\u003eSidekiq.testing!(mode)\u003c/code\u003e API \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6931\"\u003e#6931\u003c/a\u003e\nRequiring code should not enable process-wide changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# Old, implicit\nrequire \u0026quot;sidekiq/testing\u0026quot;\nrequire \u0026quot;sidekiq/testing/inline\u0026quot;\n# New, more explicit\nSidekiq.testing!(:fake)\nSidekiq.testing!(:inline)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition with Stop button in UI \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6935\"\u003e#6935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix javascript error handler \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6893\"\u003e#6893\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5c049c585a2eb4c91b1a163589d72465e99aad7e\"\u003e\u003ccode\u003e5c049c5\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0bafeb1084b9c7a5edcf0bc507108b4603682597\"\u003e\u003ccode\u003e0bafeb1\u003c/code\u003e\u003c/a\u003e bump, release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2a4eec2dd323adb32f333b4416ca167bf4b83a92\"\u003e\u003ccode\u003e2a4eec2\u003c/code\u003e\u003c/a\u003e Identify Sidekiq connections via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6bdf6903e93eeaf9b96fcbbe66f503fe758ee4b2\"\u003e\u003ccode\u003e6bdf690\u003c/code\u003e\u003c/a\u003e Fix: don't cache \u0026quot;none\u0026quot; type in Paginator::TYPE_CACHE (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/28b37b722c58d89593620c3733d3dcd87f6e6e08\"\u003e\u003ccode\u003e28b37b7\u003c/code\u003e\u003c/a\u003e release [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/4d0adda70769168a675bb260d2790d76f6849188\"\u003e\u003ccode\u003e4d0adda\u003c/code\u003e\u003c/a\u003e fmt, bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/906fb6837a2b42a5330b3748bdb4007ec06666ff\"\u003e\u003ccode\u003e906fb68\u003c/code\u003e\u003c/a\u003e sidekiq changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/92924ab48a80cf31148fd7ab4cd2e561d5bf823a\"\u003e\u003ccode\u003e92924ab\u003c/code\u003e\u003c/a\u003e ent changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c6bd7b89e9bb825bc9c4969712828ef88b6d84bc\"\u003e\u003ccode\u003ec6bd7b8\u003c/code\u003e\u003c/a\u003e Add new keys to gd translation (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6984\"\u003e#6984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/29542380a69b23453f7e6e429ef96fe5fd62e3c9\"\u003e\u003ccode\u003e2954238\u003c/code\u003e\u003c/a\u003e tui: implement locale-aware number_with_delimiter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6983\"\u003e#6983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.7...v8.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geocoder` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md\"\u003egeocoder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.6 (2025 Sep 21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for IPInfo Lite lookup (thanks github.com/iltempo).\u003c/li\u003e\n\u003cli\u003eVarious minor fixes and improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/d3515db46c5785db8cd48dbf94af123a2c99b8a9\"\u003e\u003ccode\u003ed3515db\u003c/code\u003e\u003c/a\u003e Prepare for release of gem version 1.8.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/737d16f277f81aabe73e2dfe466e2ba84fef188a\"\u003e\u003ccode\u003e737d16f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1694\"\u003e#1694\u003c/a\u003e from Intrepidd/update-data-gouv-fr-domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/4b50c085eea4de4f453eab2e8dc6faf7b3824420\"\u003e\u003ccode\u003e4b50c08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1695\"\u003e#1695\u003c/a\u003e from cprodhomme/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/31545ee756f1230a063e86458b3dadbac9b7e7b4\"\u003e\u003ccode\u003e31545ee\u003c/code\u003e\u003c/a\u003e Update README_API_GUIDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/3a90b5aa6c708945cf181f16a182ca232f668c4d\"\u003e\u003ccode\u003e3a90b5a\u003c/code\u003e\u003c/a\u003e Update BAN domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/b2c0aa5526f90209883e3ca64b73d9559d21f729\"\u003e\u003ccode\u003eb2c0aa5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1691\"\u003e#1691\u003c/a\u003e from TheRusskiy/radius-column-arel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/cd58cab7fd167d641927fe4a083963fcf5cd08df\"\u003e\u003ccode\u003ecd58cab\u003c/code\u003e\u003c/a\u003e add \u0026quot;arel\u0026quot; to near_test spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/63ca4702ccffe776b146c28d289f7449d25946ee\"\u003e\u003ccode\u003e63ca470\u003c/code\u003e\u003c/a\u003e radius column can be an instance of Arel.sql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/eaf85fe4de045c2ad3e035f560d6755e82646bee\"\u003e\u003ccode\u003eeaf85fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1688\"\u003e#1688\u003c/a\u003e from skillstopractice/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/00369bb35a29a86f54e6fea516ecf9842e5f855f\"\u003e\u003ccode\u003e00369bb\u003c/code\u003e\u003c/a\u003e Update tests to use data['place_name'] for Mapbox\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexreisner/geocoder/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pundit` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/varvet/pundit/blob/main/CHANGELOG.md\"\u003epundit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.2 (2025-09-24)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econfig/rubocop-rspec.yml\u003c/code\u003e back from accidentally being excluded \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.5.1 (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequiring only \u003ccode\u003epundit/rspec\u003c/code\u003e no longer raises an error in Active Support \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/857\"\u003e#857\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/2d665d67a26f794987df926e49676948fe115289\"\u003e\u003ccode\u003e2d665d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/867\"\u003e#867\u003c/a\u003e from varvet/kbs/release-v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/7ff48a83790aef27bd89fa4da6a0a238599bca2d\"\u003e\u003ccode\u003e7ff48a8\u003c/code\u003e\u003c/a\u003e Bump to v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/674abac197c7ecc000fd25a4542344d38c998535\"\u003e\u003ccode\u003e674abac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e from varvet/kbs/add-rubocop-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/923eebf39ccd6f8095a5c4270953e7a19d6d16a6\"\u003e\u003ccode\u003e923eebf\u003c/code\u003e\u003c/a\u003e Point changelog to PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/47668502881e3abed7dd004ca19fa11d66b23b6f\"\u003e\u003ccode\u003e4766850\u003c/code\u003e\u003c/a\u003e Add rubocop config file back to gem release files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/27a840bedadf0ef3d66f1857edd966c2e01cc18e\"\u003e\u003ccode\u003e27a840b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/863\"\u003e#863\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/381b202dd2e11c5eb0ea1134d29f85331a01d643\"\u003e\u003ccode\u003e381b202\u003c/code\u003e\u003c/a\u003e +3.4 -3.1 (EOL)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/4bb6a67819572bd9431d30048fbab4c9685cfbf2\"\u003e\u003ccode\u003e4bb6a67\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/862\"\u003e#862\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/6ceca0d2ab84d2240e6422e7b14d208ad10e3304\"\u003e\u003ccode\u003e6ceca0d\u003c/code\u003e\u003c/a\u003e Attempt code quality upload to qlty.sh instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/82d918a4c4c4ab393f662a32e94028d6b086285d\"\u003e\u003ccode\u003e82d918a\u003c/code\u003e\u003c/a\u003e Bump to v2.5.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/varvet/pundit/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ahoy_matey` from 5.4.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/ahoy/blob/master/CHANGELOG.md\"\u003eahoy_matey's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.0 (2026-04-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed error with \u003ccode\u003eAhoy::Tracker\u003c/code\u003e outside of requests\u003c/li\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.2 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cookie deletion with \u003ccode\u003ecookie_domain\u003c/code\u003e and \u003ccode\u003ecookie_options\u003c/code\u003e options\u003c/li\u003e\n\u003cli\u003eUpdated Ahoy.js to 0.4.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.1 (2025-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning with Rack 3.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/0934ed94a4a7263f682eefb47bd78cdc05d33c5d\"\u003e\u003ccode\u003e0934ed9\u003c/code\u003e\u003c/a\u003e Version bump to 5.5.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/1881c47e52d10deb1989964acf9809531a937aaf\"\u003e\u003ccode\u003e1881c47\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/bb10d30342311ccb8cfc4279555189d56129f6ce\"\u003e\u003ccode\u003ebb10d30\u003c/code\u003e\u003c/a\u003e Fixed error with Ahoy::Tracker outside of request when cookies disabled - res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/3b4e45fde58880d4432e1a5ab8dfadd41d617117\"\u003e\u003ccode\u003e3b4e45f\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/41d7834a3af1553d8cf890cf231e4fdb53c196d9\"\u003e\u003ccode\u003e41d7834\u003c/code\u003e\u003c/a\u003e Updated readme [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/2186f3857f702c6c5fa3e0d80310d852de2cc8f0\"\u003e\u003ccode\u003e2186f38\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/eed4fdad924261f9f57b87032e760a06fd4dcd05\"\u003e\u003ccode\u003eeed4fda\u003c/code\u003e\u003c/a\u003e Version bump to 5.4.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/f73c04e68fe8b884140cd659acee170224b19ec3\"\u003e\u003ccode\u003ef73c04e\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/7c50688aa1e4d56545be421a9427c36c51476383\"\u003e\u003ccode\u003e7c50688\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with path option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/5a801f44d8bd5e1ab6f8e9f8923f8ef39eaa6e75\"\u003e\u003ccode\u003e5a801f4\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with cookie_domain option - fixes \u003ca href=\"https://redirect.github.com/ankane/ahoy/issues/581\"\u003e#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/ahoy/compare/v5.4.0...v5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18n-js` from 4.2.3 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fnando/i18n-js/blob/main/CHANGELOG.md\"\u003ei18n-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/f8fb0dc0b01e7e639a6eb5dd875adbaa78858d8f\"\u003e\u003ccode\u003ef8fb0dc\u003c/code\u003e\u003c/a\u003e Bump up version (4.2.4).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/2cbea21df1ac16685a4e974716296853eccc0d49\"\u003e\u003ccode\u003e2cbea21\u003c/code\u003e\u003c/a\u003e Remove benchmark gem (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9f99172d197b586dab34f4cf6a08a1df9703222f\"\u003e\u003ccode\u003e9f99172\u003c/code\u003e\u003c/a\u003e Update matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9096c6e63bbbc24900bb10cfd0d42b6a89470c1c\"\u003e\u003ccode\u003e9096c6e\u003c/code\u003e\u003c/a\u003e Fix rubocop warnings.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/237b69b34f73873c2a3c753c45b208e670d15a31\"\u003e\u003ccode\u003e237b69b\u003c/code\u003e\u003c/a\u003e Update --quiet param description (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/1f3305ffa531614de22070ec3a0acbb592902636\"\u003e\u003ccode\u003e1f3305f\u003c/code\u003e\u003c/a\u003e Update action.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/674cb0781bdba259e7a25fcd2df6f8dd21dc5276\"\u003e\u003ccode\u003e674cb07\u003c/code\u003e\u003c/a\u003e Fix rubocop warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/877e6f1de96126021cce39f802377ffeead79ff4\"\u003e\u003ccode\u003e877e6f1\u003c/code\u003e\u003c/a\u003e Update actions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/7e27159f535643bc3080dce132a5ae953c4034ea\"\u003e\u003ccode\u003e7e27159\u003c/code\u003e\u003c/a\u003e Require ruby 3.2+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/58c32fdc576a499eb2433bd9d633d537f8a696d8\"\u003e\u003ccode\u003e58c32fd\u003c/code\u003e\u003c/a\u003e Disable rubocop rule.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fnando/i18n-js/compare/v4.2.3...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.1 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.1...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.24.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6500a43b2ac7fda963f03ed62098fb3b2be2bdeb\"\u003e\u003ccode\u003e6500a43\u003c/code\u003e\u003c/a\u003e Handle Coverage being suspended\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cf3791edf37b778e14efa1f366c775f8456a3475\"\u003e\u003ccode\u003ecf3791e\u003c/code\u003e\u003c/a\u003e ISeq#input_to_output: just return \u003ccode\u003enil\u003c/code\u003e when using default compiler.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cabdad95ed5218e6b888121c92702da4338de866\"\u003e\u003ccode\u003ecabdad9\u003c/code\u003e\u003c/a\u003e Only test Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/18250\"\u003e#18250\u003c/a\u003e] if on Ruby 3.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/490960e1dcd8bde4dda53e3ed1f435def73e0b0e\"\u003e\u003ccode\u003e490960e\u003c/code\u003e\u003c/a\u003e Yet another warning emitted from the canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/045beb2ee5a85b1fd5000e6ee566b8b8a4c5df72\"\u003e\u003ccode\u003e045beb2\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d37f282ec8db1c9b31405c5629bcc6bc68d9974c\"\u003e\u003ccode\u003ed37f282\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/546\"\u003e#546\u003c/a\u003e from davidenglishmusic/rubocop-performance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.24.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rexml` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/releases\"\u003erexml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREXML 3.4.4 - 2025-09-10\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREXML 3.4.3 - 2025-09-07\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cl...\n\n_Description has been truncated_","html_url":"https://github.com/CircuitVerse/CircuitVerse/pull/7367","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7367","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7367/packages"},{"uuid":"4364698277","node_id":"PR_kwDOB4ZGwM7XbtFU","number":306,"state":"open","title":"Bump the ruby-dependencies group with 29 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T13:48:42.000Z","updated_at":"2026-05-01T13:48:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":29,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.3","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.1","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.14.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.40.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.16.2","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.246.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rspec-core","old_version":"3.12.1","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.1.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.220.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.2.2","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.2.2","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.3","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.6","repository_url":"https://github.com/rack/rack"},{"name":"net-imap","old_version":"0.5.13","new_version":"0.6.4","repository_url":"https://github.com/ruby/net-imap"},{"name":"json","old_version":"2.19.3","new_version":"2.19.4","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.1","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.4.2","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 29 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.3` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.1` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.14.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.40.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.16.2` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.246.0` |\n| [rspec-core](https://github.com/rspec/rspec) | `3.12.1` | `3.13.6` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.1.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.220.0` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.2.2` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.2.2` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.3` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.6` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.13` | `0.6.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `2.19.4` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `6.5.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `6.5.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.43.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.1` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.4.2` |\n\nUpdates `sqlite3` from 1.6.1 to 2.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eca6dd1cf6c037ccc8d3e5837190cc61ef15466092014951235641b5c4c8ab4ee  sqlite3-2.9.3-aarch64-linux-gnu.gem\r\nff017a36c463d02e9f0be7a6224521371128024e6a05ed16994afa5c037afbba  sqlite3-2.9.3-aarch64-linux-musl.gem\r\nfd8b74337a66bdaf746b97d65e6c9a2faff803c8f72d6b107fb880972815d072  sqlite3-2.9.3-arm-linux-gnu.gem\r\n792ae9a786bb37dbdc4c443c527bc91df423aac10e472f76d5cf5a9ac6d51980  sqlite3-2.9.3-arm-linux-musl.gem\r\n76b265d3d57362d3e38338f24f50a0c9cd47a4599c9cfbb578fac125d2299906  sqlite3-2.9.3-arm64-darwin.gem\r\n61edb2ce7a58e800478602e88b67e99f029b44747405c94c0cce7d165b0d0a96  sqlite3-2.9.3-x64-mingw-ucrt.gem\r\nceb2417f01563a2800836fbbc6d59aa0ca591882c99f6c50fdc0c8090da7a03b  sqlite3-2.9.3-x86-linux-gnu.gem\r\n1688e37da36a4513a1a1d6e9abb643f68723599abbe564cb1a1bf496c9ae8dca  sqlite3-2.9.3-x86-linux-musl.gem\r\n087e7cc4efc73d83e76354f028c4d1dc14552a05acc74f60e77a55f1bee6ef22  sqlite3-2.9.3-x86_64-darwin.gem\r\n85200a10c6cf5c60085fcca411a3168c5fba8fda3e2b1b0109ec277d7c226d46  sqlite3-2.9.3-x86_64-linux-gnu.gem\r\nb6d0437046d9180335dea1aa0592802e65c4f7b57409d63f14408211bf28536b  sqlite3-2.9.3-x86_64-linux-musl.gem\r\ne5ca871c87241bfdaf0e4a90d5177f4e4fe7af5f6951f88b4644339cc76e47ae  sqlite3-2.9.3.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eeeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42  sqlite3-2.9.2-aarch64-linux-gnu.gem\r\n4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d  sqlite3-2.9.2-aarch64-linux-musl.gem\r\n1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7  sqlite3-2.9.2-arm-linux-gnu.gem\r\n8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057  sqlite3-2.9.2-arm-linux-musl.gem\r\nd15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9  sqlite3-2.9.2-arm64-darwin.gem\r\nb1b10d8c45a495b1e5b6338f7baa11297522bb9809b01e7e575090edd685953e  sqlite3-2.9.2-x64-mingw-ucrt.gem\r\n066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d  sqlite3-2.9.2-x86-linux-gnu.gem\r\n6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede  sqlite3-2.9.2-x86-linux-musl.gem\r\ned691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13  sqlite3-2.9.2-x86_64-darwin.gem\r\ndce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee  sqlite3-2.9.2-x86_64-linux-gnu.gem\r\ne8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7  sqlite3-2.9.2-x86_64-linux-musl.gem\r\n86814150714b6b06a328d083f46408e7a4a83b5f0a9673ed934ee3a1cb7a73b1  sqlite3-2.9.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eStatement#named_params\u003c/code\u003e to introspect on a parameterized SQL statement. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/627\"\u003e#627\u003c/a\u003e \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/642\"\u003e#642\u003c/a\u003e \u003ca href=\"https://github.com/captn3m0\"\u003e\u003ccode\u003e@​captn3m0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSmall improvements to docstrings and comments. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/houyuanjie\"\u003e\u003ccode\u003e@​houyuanjie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.1 / 2025-11-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_1.html\"\u003ev3.51.1\u003c/a\u003e (from v3.51.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/659\"\u003e#659\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrecompiled native gems are built with rake-compiler-dock v1.10.0 (previously v1.9.1).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.0 / 2025-11-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_0.html\"\u003ev3.51.0\u003c/a\u003e (from v3.50.4). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/652\"\u003e#652\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.4 / 2025-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_50_4.html\"\u003ev3.50.4\u003c/a\u003e (from v3.50.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/644\"\u003e#644\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.3 / 2025-07-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://sqlite.org/releaselog/3_50_3.html\"\u003ev3.50.3\u003c/a\u003e (from v3.50.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/638\"\u003e#638\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2e8172c0a7699902b8630433e988903edab10d18\"\u003e\u003ccode\u003e2e8172c\u003c/code\u003e\u003c/a\u003e version bump to v2.9.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3dee3f2c737cbc48b68e3b4632287b13521a60ea\"\u003e\u003ccode\u003e3dee3f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e from sparklemotion/dep-sqlite-3.53.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/6d1ae38f33c4528c0ac56951c052b90cdfad9c81\"\u003e\u003ccode\u003e6d1ae38\u003c/code\u003e\u003c/a\u003e build(deps): update vendored sqlite to 3.53.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/45611fd3f415338875407bcb0f67f6ae92bef65f\"\u003e\u003ccode\u003e45611fd\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c1724fc7f816b1fd13071000a25976c0e7f3cd95\"\u003e\u003ccode\u003ec1724fc\u003c/code\u003e\u003c/a\u003e build(deps): bump vmactions/freebsd-vm in the actions group (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8a7709e34196d1e37b7180fcddb0e6021a60ec97\"\u003e\u003ccode\u003e8a7709e\u003c/code\u003e\u003c/a\u003e build(deps-dev): update minitest requirement from 6.0.2 to 6.0.3 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b7c076de9b9d6658b2f77af788a55144cda0db69\"\u003e\u003ccode\u003eb7c076d\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/704beb8b35cf060268b2d6eb32bcb33297846622\"\u003e\u003ccode\u003e704beb8\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/efc56aa1e407a7aa6a96caefecd2c900e1f39223\"\u003e\u003ccode\u003eefc56aa\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8635618dca7edca3a804175610d0a81381e3554b\"\u003e\u003ccode\u003e8635618\u003c/code\u003e\u003c/a\u003e doc: new automated release process\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/richardvenneman\"\u003e\u003ccode\u003e@​richardvenneman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/576\"\u003erails/jbuilder#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.13.0...v2.14.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.13.0...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRedirect to \u003ccode\u003e@record\u003c/code\u003e or path in controller generator by \u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/569\"\u003erails/jbuilder#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn early from collection partial rendering if blank by \u003ca href=\"https://github.com/tylerjc\"\u003e\u003ccode\u003e@​tylerjc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/560\"\u003erails/jbuilder#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing ':see_other' status code in generated destroy controller method by \u003ca href=\"https://github.com/ldeld\"\u003e\u003ccode\u003e@​ldeld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/538\"\u003erails/jbuilder#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove OpenStruct references from Jbuilder by \u003ca href=\"https://github.com/mtsmfm\"\u003e\u003ccode\u003e@​mtsmfm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/567\"\u003erails/jbuilder#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse new \u003ccode\u003eparams.expect\u003c/code\u003e syntax instead of \u003ccode\u003eparams.require\u003c/code\u003e by \u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/573\"\u003erails/jbuilder#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/570\"\u003erails/jbuilder#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tylerjc\"\u003e\u003ccode\u003e@​tylerjc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/560\"\u003erails/jbuilder#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ldeld\"\u003e\u003ccode\u003e@​ldeld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/538\"\u003erails/jbuilder#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtsmfm\"\u003e\u003ccode\u003e@​mtsmfm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/567\"\u003erails/jbuilder#567\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/38339adaa9d44ba89c0dde2a795338a886941e6f\"\u003e\u003ccode\u003e38339ad\u003c/code\u003e\u003c/a\u003e Prepare for 2.14.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/2400fd9ce631ec9689b535e9af6ad866781f8ef9\"\u003e\u003ccode\u003e2400fd9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/601\"\u003e#601\u003c/a\u003e from flavorjones/flavorjones/fix-encode-arguments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/a6863b5d582b966fcfbef8686c829c950efd1f5c\"\u003e\u003ccode\u003ea6863b5\u003c/code\u003e\u003c/a\u003e Ensure that Jbuilder.encode properly forwards arguments to .new\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/30ba7df152aacdf20b6267a82b9d2b1f9e947636\"\u003e\u003ccode\u003e30ba7df\u003c/code\u003e\u003c/a\u003e Prepare for 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/5f4af71c859c6b234eef1682f81aac225534f048\"\u003e\u003ccode\u003e5f4af71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/591\"\u003e#591\u003c/a\u003e from moberegger/moberegger/optimize_options_merges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/6fd6c0662f6507be951ba842857c663adb000f56\"\u003e\u003ccode\u003e6fd6c06\u003c/code\u003e\u003c/a\u003e Small _set_inline_partial optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/b7b5abb02d9bb2ed1fc584a08142838a05cafc08\"\u003e\u003ccode\u003eb7b5abb\u003c/code\u003e\u003c/a\u003e Stop mutating options in partial! method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/7e16adf446c9da701e1e5fdbe9c93f7f8095630d\"\u003e\u003ccode\u003e7e16adf\u003c/code\u003e\u003c/a\u003e Stop mutating options in set! method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/8474b41f666b13055b9368107c783cdae7903fb6\"\u003e\u003ccode\u003e8474b41\u003c/code\u003e\u003c/a\u003e Remove _partial micro-optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/9ffacf75a64f5f595bee3cfb28dcfe3307d8e2da\"\u003e\u003ccode\u003e9ffacf7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/574\"\u003e#574\u003c/a\u003e from pixeltrix/fix-warnings-and-version-constant\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.0\u003c/h2\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eInclude security warning in ExternalAccount and ImpersonatedServiceAccount credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.15.1\u003c/h2\u003e\n\u003ch3\u003e1.15.1 (2025-10-14)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate method make_creds in DefaultCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.15.0\u003c/h2\u003e\n\u003ch3\u003e1.15.0 (2025-08-25)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd typed errors to authentication library (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for JWT 3.x (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix incorrect error and apply some code complexity refactoring (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Pathname for cred loading (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments\u003c/li\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.14.0\u003c/h2\u003e\n\u003ch3\u003e1.14.0 (2025-03-14)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eInclude security warning in ExternalAccount and ImpersonatedServiceAccount credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.15.1 (2025-10-14)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate method make_creds in DefaultCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.15.0 (2025-08-25)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd typed errors to authentication library (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for JWT 3.x (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix incorrect error and apply some code complexity refactoring (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Pathname for cred loading (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments\u003c/li\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.14.0 (2025-03-14)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd API key credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Bearer token credentials\u003c/li\u003e\n\u003cli\u003eadd BearerToken credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/1ef191b1342c19736ebe7a5640bfb86a7d989c68\"\u003e\u003ccode\u003e1ef191b\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.2 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/fb5b7978d66b43465081a024aaf7ebc17354ed9d\"\u003e\u003ccode\u003efb5b797\u003c/code\u003e\u003c/a\u003e fix: return response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/b0ec7d8b1e7a722839a196cb7a56b9c6f43e8159\"\u003e\u003ccode\u003eb0ec7d8\u003c/code\u003e\u003c/a\u003e fix: initialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5c4ab1cfc3517d5490633c878cb5136ca4da75e6\"\u003e\u003ccode\u003e5c4ab1c\u003c/code\u003e\u003c/a\u003e chore: replace old ruby teams with cloud-sdk-ruby-team (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/43ab9db5f237fb337cbd8d8db562f28cc2bfcff8\"\u003e\u003ccode\u003e43ab9db\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/559\"\u003e#559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/d7193fc6364f099d8110271a65d474227573aa91\"\u003e\u003ccode\u003ed7193fc\u003c/code\u003e\u003c/a\u003e fix: restore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/a59a1df96d4bf476d1fd96544b309ce4a6a70ec9\"\u003e\u003ccode\u003ea59a1df\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/317474db5f5889755f309704a9304d4fb86f06f6\"\u003e\u003ccode\u003e317474d\u003c/code\u003e\u003c/a\u003e fix: Include security warning in ExternalAccount and ImpersonatedServiceAccou...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/4c31b17f02d0f46c991418ab6f909383623d489c\"\u003e\u003ccode\u003e4c31b17\u003c/code\u003e\u003c/a\u003e feat: Add ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/1c6724ffd2e7a9c8bf171f9858bcd334d03df98b\"\u003e\u003ccode\u003e1c6724f\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.15.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/compare/googleauth/v1.3.0...googleauth/v1.16.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-core` from 3.243.0 to 3.246.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/CHANGELOG.md\"\u003eaws-sdk-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.246.0 (2026-04-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated configuration values for \u003ccode\u003edefaults_mode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.245.0 (2026-04-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Updated Aws::STS::Client with the latest API changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - The STS client now supports configuring SigV4a through the auth scheme preference setting. SigV4a uses asymmetric cryptography, enabling customers using long-term IAM credentials to continue making STS API calls even when a region is isolated from the partition leader.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Explicitly set 0600 permissions on SSO/login cache files.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.244.0 (2026-03-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support waiter error matcher to handle both boolean and boolean-string acceptors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-core` from 3.12.1 to 3.13.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rspec/rspec/blob/rspec-core-v3.13.6/rspec-core/Changelog.md\"\u003erspec-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e3.13.6 / 2025-10-19\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd explicit block parameter to \u003ccode\u003eRSpec::World::Null.traverse_example_group_trees_until\u003c/code\u003e to\nprevent warning. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/240\"\u003erspec/rspec#240\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.5 / 2025-06-25\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding failed lines from frozen backtrace arrays. (Jon Rowe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.4 / 2025-05-27\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.3...rspec-core-v3.13.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix links in gemspec to point to the monorepo / homepage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.3 / 2025-02-06\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reporter memorisation of \u003ccode\u003eExamplesNotification\u003c/code\u003e used in \u003ccode\u003eRSpec::Core::Reporter#finish\u003c/code\u003e\nby reusing an instance across notifcations. (Maxime Lapointe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/172\"\u003erspec/rspec#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix memorisation of \u003ccode\u003eRSpec::Core::Example#location_rerun_argument\u003c/code\u003e.\n(Maxime Lapointe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/173\"\u003erspec/rspec#173\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.2 / 2024-10-18\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.13.1...v3.13.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRSpec::Configuration#requires\u003c/code\u003e will reflect files already required, whilst requiring\nthem. (Jon Rowe, \u003ca href=\"https://redirect.github.com/rspec/rspec-core/issues/3117\"\u003erspec/rspec-core#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.1 / 2024-09-02\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.13.0...v3.13.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSort ids to run as the original order to fix \u003ccode\u003e--bisect\u003c/code\u003e. (Maki Kawahara, \u003ca href=\"https://redirect.github.com/rspec/rspec-core/issues/3093\"\u003erspec/rspec-core#3093\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.0 / 2024-02-04\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.12.3...v3.13.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec/commits/rspec-core-v3.13.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/306","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/306","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/306/packages"},{"uuid":"4299379315","node_id":"PR_kwDOCSVaMM7UIreO","number":7320,"state":"open","title":"build(deps): bump the minor-and-patch group across 1 directory with 65 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T23:55:34.000Z","updated_at":"2026-04-20T23:56:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":65,"packages":[{"name":"aws-actionmailer-ses","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/aws/aws-actionmailer-ses-ruby"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"kt-paperclip","old_version":"7.2.2","new_version":"7.3.0","repository_url":"https://github.com/kreeti/kt-paperclip"},{"name":"omniauth","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/omniauth/omniauth"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"view_component","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"rails","old_version":"8.0.5","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"terser","old_version":"1.2.6","new_version":"1.2.7","repository_url":"https://github.com/ahorek/terser-ruby"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.3","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"geocoder","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/alexreisner/geocoder"},{"name":"pundit","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/varvet/pundit"},{"name":"ahoy_matey","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/ankane/ahoy"},{"name":"i18n-js","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/fnando/i18n-js"},{"name":"pg","old_version":"1.6.1","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"flipper-redis","old_version":"1.3.6","new_version":"1.4.1","repository_url":"https://github.com/flippercloud/flipper"},{"name":"friendly_id","old_version":"5.5.1","new_version":"5.6.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rails-i18n","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/svenfuchs/rails-i18n"},{"name":"recaptcha","old_version":"5.20.1","new_version":"5.21.2","repository_url":"https://github.com/ambethia/recaptcha"},{"name":"strong_migrations","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/ankane/strong_migrations"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-performance","old_version":"1.25.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.6.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rbs_rails","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/pocke/rbs_rails"},{"name":"json-schema","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/voxpupuli/json-schema"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"undercover","old_version":"0.8.0","new_version":"0.8.4","repository_url":"https://github.com/grodowski/undercover"},{"name":"capybara-playwright-driver","old_version":"0.5.7","new_version":"0.5.9","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"bundler-audit","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/rubysec/bundler-audit"},{"name":"lookbook","old_version":"2.3.13","new_version":"2.3.14","repository_url":"https://github.com/lookbook-hq/lookbook"},{"name":"oj","old_version":"3.16.11","new_version":"3.17.0","repository_url":"https://github.com/ohler55/oj"},{"name":"rack-attack","old_version":"6.7.0","new_version":"6.8.0","repository_url":"https://github.com/rack/rack-attack"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.219.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-sdk","old_version":"1.8.1","new_version":"1.11.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-exporter-otlp","old_version":"0.30.0","new_version":"0.33.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.8.0","new_version":"0.11.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/Shopify/maintenance_tasks"},{"name":"stackprof","old_version":"0.2.27","new_version":"0.2.28","repository_url":"https://github.com/tmm1/stackprof"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-actionmailer-ses](https://github.com/aws/aws-actionmailer-ses-ruby) | `1.0.0` | `1.1.0` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [kt-paperclip](https://github.com/kreeti/kt-paperclip) | `7.2.2` | `7.3.0` |\n| [omniauth](https://github.com/omniauth/omniauth) | `2.1.3` | `2.1.4` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.2` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.6.0` | `4.7.0` |\n| [rails](https://github.com/rails/rails) | `8.0.5` | `8.1.3` |\n| [terser](https://github.com/ahorek/terser-ruby) | `1.2.6` | `1.2.7` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.3` |\n| [geocoder](https://github.com/alexreisner/geocoder) | `1.8.5` | `1.8.6` |\n| [pundit](https://github.com/varvet/pundit) | `2.5.0` | `2.5.2` |\n| [ahoy_matey](https://github.com/ankane/ahoy) | `5.4.0` | `5.5.0` |\n| [i18n-js](https://github.com/fnando/i18n-js) | `4.2.3` | `4.2.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.1` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [flipper-redis](https://github.com/flippercloud/flipper) | `1.3.6` | `1.4.1` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.5.1` | `5.6.0` |\n| [rails-i18n](https://github.com/svenfuchs/rails-i18n) | `8.0.2` | `8.1.0` |\n| [recaptcha](https://github.com/ambethia/recaptcha) | `5.20.1` | `5.21.2` |\n| [strong_migrations](https://github.com/ankane/strong_migrations) | `2.5.0` | `2.6.0` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.5.0` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.25.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.6.0` | `3.9.0` |\n| [rbs_rails](https://github.com/pocke/rbs_rails) | `0.12.1` | `0.13.1` |\n| [json-schema](https://github.com/voxpupuli/json-schema) | `6.0.0` | `6.2.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [undercover](https://github.com/grodowski/undercover) | `0.8.0` | `0.8.4` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.7` | `0.5.9` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [bundler-audit](https://github.com/rubysec/bundler-audit) | `0.9.2` | `0.9.3` |\n| [lookbook](https://github.com/lookbook-hq/lookbook) | `2.3.13` | `2.3.14` |\n| [oj](https://github.com/ohler55/oj) | `3.16.11` | `3.17.0` |\n| [rack-attack](https://github.com/rack/rack-attack) | `6.7.0` | `6.8.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.219.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-ruby) | `1.8.1` | `1.11.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-ruby) | `0.30.0` | `0.33.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.8.0` | `0.11.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.12.0` | `2.14.0` |\n| [stackprof](https://github.com/tmm1/stackprof) | `0.2.27` | `0.2.28` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n\n\nUpdates `aws-actionmailer-ses` from 1.0.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/releases\"\u003eaws-actionmailer-ses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.1.0 - 2026-03-31\u003c/h2\u003e\n\u003cp\u003eTag release v1.1.0\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/blob/main/CHANGELOG.md\"\u003eaws-actionmailer-ses's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/87d57bae1d2da68729c639da957c89b4f14eef02\"\u003e\u003ccode\u003e87d57ba\u003c/code\u003e\u003c/a\u003e Bumped version to v1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/55de5a801bc2f819acda6521fa7efab8e72829bb\"\u003e\u003ccode\u003e55de5a8\u003c/code\u003e\u003c/a\u003e Allow precreated SESv2 client (issue \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/0e7a21034d43615e7765bb96c84f09f43fe80e1f\"\u003e\u003ccode\u003e0e7a210\u003c/code\u003e\u003c/a\u003e Scope down GitHub token permissions for ci.yml (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/c2b91df4f58ed7da035c953ecfd4f9847da46ebb\"\u003e\u003ccode\u003ec2b91df\u003c/code\u003e\u003c/a\u003e Update CI to include 3.4 (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/aab2974887db3c4d525f9e18c3f1ae7c6513d230\"\u003e\u003ccode\u003eaab2974\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/ce6af36916d5ab9224bf193690d98f539585f208\"\u003e\u003ccode\u003ece6af36\u003c/code\u003e\u003c/a\u003e Added next release section to the changelog. [ci skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/compare/v1.0.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv-rails` from 3.1.8 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bkeepers/dotenv/releases\"\u003edotenv-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBoost app startup time by removing to_sentence usage by \u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in variables in commands by \u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow warning when a env var was not overwritten by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/531\"\u003ebkeepers/dotenv#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix a few small issues by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/532\"\u003ebkeepers/dotenv#532\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ehttps://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/34156bf400cd67387fa6ed9f146778f6a2f5f743\"\u003e\u003ccode\u003e34156bf\u003c/code\u003e\u003c/a\u003e Prepare for 3.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/ab478201bdb487bfebd9e89875fd4edcf19dc064\"\u003e\u003ccode\u003eab47820\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/531\"\u003e#531\u003c/a\u003e from grosser/grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/fae61202e432f39742e2592817cc7bb38f559852\"\u003e\u003ccode\u003efae6120\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/4f510f41073cabb9786e3a5ea57263933497e696\"\u003e\u003ccode\u003e4f510f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/532\"\u003e#532\u003c/a\u003e from grosser/grosser/fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/959e1dac9d933a7ffe6a2ab17081f8235b7822a9\"\u003e\u003ccode\u003e959e1da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/539\"\u003e#539\u003c/a\u003e from bkeepers/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/041451e4ef7fd3a4ea604fcabef0cfb6fb5e79a3\"\u003e\u003ccode\u003e041451e\u003c/code\u003e\u003c/a\u003e Update spec message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/b300f262bdf1cfd6ac5215fd44baa771753702b9\"\u003e\u003ccode\u003eb300f26\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/5f4ca012b03c82343ad3f926e2fd281aa30a434b\"\u003e\u003ccode\u003e5f4ca01\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/209dca47e453f7288aac9f31330e67e3f0b83e78\"\u003e\u003ccode\u003e209dca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/540\"\u003e#540\u003c/a\u003e from i7an/handle-parentheses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/48c495683008c5dd1816a89329e59f8386324bb2\"\u003e\u003ccode\u003e48c4956\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into handle-parentheses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kt-paperclip` from 7.2.2 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/releases\"\u003ekt-paperclip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using \u003ccode\u003eAws::S3::TransferManager\u003c/code\u003e if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature - add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1 - Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/135\"\u003e#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/139\"\u003e#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/134\"\u003e#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oz-tal\"\u003e\u003ccode\u003e@​oz-tal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zz9pzza\"\u003e\u003ccode\u003e@​zz9pzza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unijewski\"\u003e\u003ccode\u003e@​unijewski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lorennorman\"\u003e\u003ccode\u003e@​lorennorman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/146\"\u003ekreeti/kt-paperclip#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cgunther\"\u003e\u003ccode\u003e@​cgunther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jukra\"\u003e\u003ccode\u003e@​jukra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ehttps://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/818f236aa6f2323bd0055bea664b33187d926377\"\u003e\u003ccode\u003e818f236\u003c/code\u003e\u003c/a\u003e Deperecate NEWS to OLD-NEWS, see release notes for correct and accurate list ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/a38ed66b5d08210a4326b0d78e2116d0946fa3c2\"\u003e\u003ccode\u003ea38ed66\u003c/code\u003e\u003c/a\u003e prepare for new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/8820cb221210bf04ca2de278dab594adfa46efe5\"\u003e\u003ccode\u003e8820cb2\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/154\"\u003e#154\u003c/a\u003e] remove BOM from gd locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/cd5c4496d12894eafa218cb631c592b67c9c10a2\"\u003e\u003ccode\u003ecd5c449\u003c/code\u003e\u003c/a\u003e Fix S3 TransferManager to use configured client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/f017c401218da5a1e106ed3dd964b51d601bac5b\"\u003e\u003ccode\u003ef017c40\u003c/code\u003e\u003c/a\u003e Make usage of Aws::S3::TransferManager conditional based on availability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/233b4756745c2610988796a0059408a50d322b92\"\u003e\u003ccode\u003e233b475\u003c/code\u003e\u003c/a\u003e Support aws-sdk-s3 \u0026gt;= 1.196.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/e20e848c80ce16f18dae2162d5e00be0d9b51421\"\u003e\u003ccode\u003ee20e848\u003c/code\u003e\u003c/a\u003e Fix the use of deprecated methods from \u003ccode\u003eaws-sdk-s3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/5078ca1c33c8cb66865e6127152ac1e240b2bb0a\"\u003e\u003ccode\u003e5078ca1\u003c/code\u003e\u003c/a\u003e Fix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/153e7dbe462de4f7f3ef42c67f95390e98e6cba7\"\u003e\u003ccode\u003e153e7db\u003c/code\u003e\u003c/a\u003e fix frozen string literal deprecation warning (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/83dc8d92e63e4c360bb9f45af1cf3b63d99bed54\"\u003e\u003ccode\u003e83dc8d9\u003c/code\u003e\u003c/a\u003e Update LICENSE\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omniauth/omniauth/releases\"\u003eomniauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ruby 3.4 to CI by \u003ca href=\"https://github.com/tejasbubane\"\u003e\u003ccode\u003e@​tejasbubane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1142\"\u003eomniauth/omniauth#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd after_request_phase callback hook by \u003ca href=\"https://github.com/gerardo-navarro\"\u003e\u003ccode\u003e@​gerardo-navarro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1147\"\u003eomniauth/omniauth#1147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ehttps://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou may now configure an after_request_phase callback on your omniauth builder instance. This callback will be run after the request phase before returning the request result.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/20ac5e05a39d58d18aca6419599f7176208f985d\"\u003e\u003ccode\u003e20ac5e0\u003c/code\u003e\u003c/a\u003e 3.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/3a249afad83e4522bd4761404cbdc89fd56a1079\"\u003e\u003ccode\u003e3a249af\u003c/code\u003e\u003c/a\u003e Add after_request_phase callback hook (\u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/0bcfd5b25bf946422cd4d9c40c4f514121ac04d6\"\u003e\u003ccode\u003e0bcfd5b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1142\"\u003e#1142\u003c/a\u003e from tejasbubane/ruby-3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/09ee92e658878f31ab51f29e02d41296cfe36111\"\u003e\u003ccode\u003e09ee92e\u003c/code\u003e\u003c/a\u003e include cgi in test group due to removal of cookie\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/abfde9072cef0e4d89463daf6185ac68520087f7\"\u003e\u003ccode\u003eabfde90\u003c/code\u003e\u003c/a\u003e add dependency on logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/844548c8641d1a3b65c9062e67e073fa8bf39936\"\u003e\u003ccode\u003e844548c\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/5158faa94a620d8ec4d9ce400aabfef3a3844dd9\"\u003e\u003ccode\u003e5158faa\u003c/code\u003e\u003c/a\u003e Add release date to CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c5f46005e0207d2e436cf0db37c85170cca04da7\"\u003e\u003ccode\u003ec5f4600\u003c/code\u003e\u003c/a\u003e Update docs and examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/4c14af8e1e6dc2615da908c50e4b0b757972922e\"\u003e\u003ccode\u003e4c14af8\u003c/code\u003e\u003c/a\u003e Backfill missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e66d0bbe6ad91f9f5a60056dae2ebf850373f249\"\u003e\u003ccode\u003ee66d0bb\u003c/code\u003e\u003c/a\u003e Clean up dead code, modernize CI, and prep 1.2.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/b902e8e7585e8e3610040d9c770f2d4e90b6f132\"\u003e\u003ccode\u003eb902e8e\u003c/code\u003e\u003c/a\u003e Modernize CI: bump rubocop, checkout action, and tooling defaults\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ac9a979db8ee097971d5d70c12142070c539d8ab\"\u003e\u003ccode\u003eac9a979\u003c/code\u003e\u003c/a\u003e Add Ruby 4.0 to CI (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/d3f1c912e438ccf6aba577c66772bf2e37373d73\"\u003e\u003ccode\u003ed3f1c91\u003c/code\u003e\u003c/a\u003e Add GitHub pages config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/253f023cdd8a5d5e05b3fed9aa00ae478a6c2997\"\u003e\u003ccode\u003e253f023\u003c/code\u003e\u003c/a\u003e Remove calendar scope on example app\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/baaf3b755ea1a02c9f811fd513b0fe90fdd2defb\"\u003e\u003ccode\u003ebaaf3b7\u003c/code\u003e\u003c/a\u003e chore(doc): update JavaScript example in README (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/dcea9d208416b53af0956d95ce54daa424d36490\"\u003e\u003ccode\u003edcea9d2\u003c/code\u003e\u003c/a\u003e Add Ruby 3.3 and 3.4 to CI matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `view_component` from 4.6.0 to 4.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md\"\u003eview_component's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b89ff4feda61a44d066d6d58a67a4add318f944f\"\u003e\u003ccode\u003eb89ff4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2610\"\u003e#2610\u003c/a\u003e from ViewComponent/release-4-7-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c187ebb9ea8e19b6cb5d988bb1c9eab7431173b2\"\u003e\u003ccode\u003ec187ebb\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a53f39d8b11efcc47df62617d1127849448207a7\"\u003e\u003ccode\u003ea53f39d\u003c/code\u003e\u003c/a\u003e release 4.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/59e97964530bb897b80c2a02ca08f0415a361319\"\u003e\u003ccode\u003e59e9796\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2609\"\u003e#2609\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3f4277cbe0d9fb05024a79650650838beb962e46\"\u003e\u003ccode\u003e3f4277c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.41 to 0.9.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/42909f1ca36038a0564a47242012ca011f420840\"\u003e\u003ccode\u003e42909f1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2608\"\u003e#2608\u003c/a\u003e from ViewComponent/dependabot/bundler/rake-13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/40f8f68f487e5b1ff9089930900bd7c8ddbaf281\"\u003e\u003ccode\u003e40f8f68\u003c/code\u003e\u003c/a\u003e Bump rake from 13.4.1 to 13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/62581fedb963feccb3f42a8669c3e04e737a780e\"\u003e\u003ccode\u003e62581fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2607\"\u003e#2607\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/db4d53ca3a358f5645c521fdcac43d2a5de54d8e\"\u003e\u003ccode\u003edb4d53c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.40 to 0.9.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/51f833b18443da39d865be4e59522445b6998fb4\"\u003e\u003ccode\u003e51f833b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2606\"\u003e#2606\u003c/a\u003e from ViewComponent/dependabot/bundler/minitest-6.0.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.5 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.5...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `terser` from 1.2.6 to 1.2.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md\"\u003eterser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.7 (23 March 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded a new module option to enable minification of ES6 modules (default is false)\u003c/li\u003e\n\u003cli\u003eupdate TerserJS to [5.46.1]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/14243401aadac062e738fde86525f261c37b1782\"\u003e\u003ccode\u003e1424340\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/67\"\u003e#67\u003c/a\u003e from ahorek/terser5461\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/ae1669dba36b571932a25685765932103db89189\"\u003e\u003ccode\u003eae1669d\u003c/code\u003e\u003c/a\u003e terser 5.46.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/c8b1c3213847dfeb85e1769958ecf9753651e697\"\u003e\u003ccode\u003ec8b1c32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/64\"\u003e#64\u003c/a\u003e from ahorek/module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/3a614841138d5c1dcf79d6362e22ad5b0a0b19f3\"\u003e\u003ccode\u003e3a61484\u003c/code\u003e\u003c/a\u003e add a module option\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ahorek/terser-ruby/compare/1.2.6...1.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.0.7 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInitial release for \u003ccode\u003ekiq\u003c/code\u003e, Sidekiq's official terminal UI:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003ebundle exec kiq\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUse REDIS_URL or REDIS_PROVIDER to point \u003ccode\u003ekiq\u003c/code\u003e to Redis.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMutation during iteration in \u003ccode\u003eSortedSet#each\u003c/code\u003e caused it to miss half of the jobs \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6936\"\u003e#6936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case resulting in nil crash on /busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6954\"\u003e#6954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDEPRECATION\u003c/strong\u003e \u003ccode\u003erequire 'sidekiq/testing'\u003c/code\u003e and\n\u003ccode\u003erequire 'sidekiq/testing/inline'\u003c/code\u003e.\nAdd new \u003ccode\u003eSidekiq.testing!(mode)\u003c/code\u003e API \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6931\"\u003e#6931\u003c/a\u003e\nRequiring code should not enable process-wide changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# Old, implicit\nrequire \u0026quot;sidekiq/testing\u0026quot;\nrequire \u0026quot;sidekiq/testing/inline\u0026quot;\n# New, more explicit\nSidekiq.testing!(:fake)\nSidekiq.testing!(:inline)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition with Stop button in UI \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6935\"\u003e#6935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix javascript error handler \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6893\"\u003e#6893\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eretry_for\u003c/code\u003e and \u003ccode\u003eretry\u003c/code\u003e are now mutually exclusive [#6878, Saidbek]\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eperform_inline\u003c/code\u003e now enforces \u003ccode\u003estrict_args!\u003c/code\u003e [#6718, Saidbek]\u003c/li\u003e\n\u003cli\u003eIntegrate Herb linting for ERB templates [#6760, Saidbek]\u003c/li\u003e\n\u003cli\u003eRemove CSRF code, use \u003ccode\u003eSec-Fetch-Site\u003c/code\u003e header [#6874, deve1212]\u003c/li\u003e\n\u003cli\u003eAllow custom Web UI \u003ccode\u003eassets_path\u003c/code\u003e for CDN purposes [#6865, stanhu]\u003c/li\u003e\n\u003cli\u003eUpgrade to connection_pool 3.0\u003c/li\u003e\n\u003cli\u003eAllow idle connection reaping after N seconds.\nYou can activate this \u003cstrong\u003ebeta\u003c/strong\u003e feature like below.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/52a08748a39030aa22e73861e1fd1bbc60bf3dea\"\u003e\u003ccode\u003e52a0874\u003c/code\u003e\u003c/a\u003e Bump, prep [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/03ca0473816dfa26eb80ae2660ab316b9ff738fb\"\u003e\u003ccode\u003e03ca047\u003c/code\u003e\u003c/a\u003e Dont call bulk_requeue when stopping Capsule, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/90d1aeed267a19cc0dfa1d2189b8d184ff5bb995\"\u003e\u003ccode\u003e90d1aee\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;add: info tag when dead queue is at max (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6976\"\u003e#6976\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/a5ae98b83aad1758ec6d7fa26e6f78562abc50cf\"\u003e\u003ccode\u003ea5ae98b\u003c/code\u003e\u003c/a\u003e add: info tag when dead queue is at max (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6976\"\u003e#6976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/fef6cdf5dc2aeaf579f242368ad4beb0675629a5\"\u003e\u003ccode\u003efef6cdf\u003c/code\u003e\u003c/a\u003e Reduce unnecessary exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/30723ca77f5df695079fefd562cea803ce2d5420\"\u003e\u003ccode\u003e30723ca\u003c/code\u003e\u003c/a\u003e fix: improve pagination active page visibility in dark mode (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/554de9f673f6555b760bf707ad88573db9da44e1\"\u003e\u003ccode\u003e554de9f\u003c/code\u003e\u003c/a\u003e pro changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/25afb7938feeeb4b4f80c979abde89164586d3c6\"\u003e\u003ccode\u003e25afb79\u003c/code\u003e\u003c/a\u003e Remove YAML usage, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/96e87996a9a071dc183f85bae513fe0b140cbc56\"\u003e\u003ccode\u003e96e8799\u003c/code\u003e\u003c/a\u003e Update error_handler proc to include config parameter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6974\"\u003e#6974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/d9a3c83e999182146a06390cfcd90c462f3310e8\"\u003e\u003ccode\u003ed9a3c83\u003c/code\u003e\u003c/a\u003e Add error_handler breaking change in upgrade docs (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6973\"\u003e#6973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.7...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geocoder` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md\"\u003egeocoder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.6 (2025 Sep 21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for IPInfo Lite lookup (thanks github.com/iltempo).\u003c/li\u003e\n\u003cli\u003eVarious minor fixes and improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/d3515db46c5785db8cd48dbf94af123a2c99b8a9\"\u003e\u003ccode\u003ed3515db\u003c/code\u003e\u003c/a\u003e Prepare for release of gem version 1.8.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/737d16f277f81aabe73e2dfe466e2ba84fef188a\"\u003e\u003ccode\u003e737d16f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1694\"\u003e#1694\u003c/a\u003e from Intrepidd/update-data-gouv-fr-domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/4b50c085eea4de4f453eab2e8dc6faf7b3824420\"\u003e\u003ccode\u003e4b50c08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1695\"\u003e#1695\u003c/a\u003e from cprodhomme/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/31545ee756f1230a063e86458b3dadbac9b7e7b4\"\u003e\u003ccode\u003e31545ee\u003c/code\u003e\u003c/a\u003e Update README_API_GUIDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/3a90b5aa6c708945cf181f16a182ca232f668c4d\"\u003e\u003ccode\u003e3a90b5a\u003c/code\u003e\u003c/a\u003e Update BAN domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/b2c0aa5526f90209883e3ca64b73d9559d21f729\"\u003e\u003ccode\u003eb2c0aa5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1691\"\u003e#1691\u003c/a\u003e from TheRusskiy/radius-column-arel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/cd58cab7fd167d641927fe4a083963fcf5cd08df\"\u003e\u003ccode\u003ecd58cab\u003c/code\u003e\u003c/a\u003e add \u0026quot;arel\u0026quot; to near_test spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/63ca4702ccffe776b146c28d289f7449d25946ee\"\u003e\u003ccode\u003e63ca470\u003c/code\u003e\u003c/a\u003e radius column can be an instance of Arel.sql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/eaf85fe4de045c2ad3e035f560d6755e82646bee\"\u003e\u003ccode\u003eeaf85fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1688\"\u003e#1688\u003c/a\u003e from skillstopractice/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/00369bb35a29a86f54e6fea516ecf9842e5f855f\"\u003e\u003ccode\u003e00369bb\u003c/code\u003e\u003c/a\u003e Update tests to use data['place_name'] for Mapbox\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexreisner/geocoder/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pundit` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/varvet/pundit/blob/main/CHANGELOG.md\"\u003epundit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.2 (2025-09-24)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econfig/rubocop-rspec.yml\u003c/code\u003e back from accidentally being excluded \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.5.1 (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequiring only \u003ccode\u003epundit/rspec\u003c/code\u003e no longer raises an error in Active Support \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/857\"\u003e#857\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/2d665d67a26f794987df926e49676948fe115289\"\u003e\u003ccode\u003e2d665d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/867\"\u003e#867\u003c/a\u003e from varvet/kbs/release-v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/7ff48a83790aef27bd89fa4da6a0a238599bca2d\"\u003e\u003ccode\u003e7ff48a8\u003c/code\u003e\u003c/a\u003e Bump to v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/674abac197c7ecc000fd25a4542344d38c998535\"\u003e\u003ccode\u003e674abac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e from varvet/kbs/add-rubocop-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/923eebf39ccd6f8095a5c4270953e7a19d6d16a6\"\u003e\u003ccode\u003e923eebf\u003c/code\u003e\u003c/a\u003e Point changelog to PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/47668502881e3abed7dd004ca19fa11d66b23b6f\"\u003e\u003ccode\u003e4766850\u003c/code\u003e\u003c/a\u003e Add rubocop config file back to gem release files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/27a840bedadf0ef3d66f1857edd966c2e01cc18e\"\u003e\u003ccode\u003e27a840b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/863\"\u003e#863\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/381b202dd2e11c5eb0ea1134d29f85331a01d643\"\u003e\u003ccode\u003e381b202\u003c/code\u003e\u003c/a\u003e +3.4 -3.1 (EOL)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/4bb6a67819572bd9431d30048fbab4c9685cfbf2\"\u003e\u003ccode\u003e4bb6a67\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/862\"\u003e#862\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/6ceca0d2ab84d2240e6422e7b14d208ad10e3304\"\u003e\u003ccode\u003e6ceca0d\u003c/code\u003e\u003c/a\u003e Attempt code quality upload to qlty.sh instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/82d918a4c4c4ab393f662a32e94028d6b086285d\"\u003e\u003ccode\u003e82d918a\u003c/code\u003e\u003c/a\u003e Bump to v2.5.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/varvet/pundit/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ahoy_matey` from 5.4.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/ahoy/blob/master/CHANGELOG.md\"\u003eahoy_matey's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.0 (2026-04-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed error with \u003ccode\u003eAhoy::Tracker\u003c/code\u003e outside of requests\u003c/li\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.2 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cookie deletion with \u003ccode\u003ecookie_domain\u003c/code\u003e and \u003ccode\u003ecookie_options\u003c/code\u003e options\u003c/li\u003e\n\u003cli\u003eUpdated Ahoy.js to 0.4.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.1 (2025-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning with Rack 3.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/0934ed94a4a7263f682eefb47bd78cdc05d33c5d\"\u003e\u003ccode\u003e0934ed9\u003c/code\u003e\u003c/a\u003e Version bump to 5.5.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/1881c47e52d10deb1989964acf9809531a937aaf\"\u003e\u003ccode\u003e1881c47\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/bb10d30342311ccb8cfc4279555189d56129f6ce\"\u003e\u003ccode\u003ebb10d30\u003c/code\u003e\u003c/a\u003e Fixed error with Ahoy::Tracker outside of request when cookies disabled - res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/3b4e45fde58880d4432e1a5ab8dfadd41d617117\"\u003e\u003ccode\u003e3b4e45f\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/41d7834a3af1553d8cf890cf231e4fdb53c196d9\"\u003e\u003ccode\u003e41d7834\u003c/code\u003e\u003c/a\u003e Updated readme [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/2186f3857f702c6c5fa3e0d80310d852de2cc8f0\"\u003e\u003ccode\u003e2186f38\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/eed4fdad924261f9f57b87032e760a06fd4dcd05\"\u003e\u003ccode\u003eeed4fda\u003c/code\u003e\u003c/a\u003e Version bump to 5.4.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/f73c04e68fe8b884140cd659acee170224b19ec3\"\u003e\u003ccode\u003ef73c04e\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/7c50688aa1e4d56545be421a9427c36c51476383\"\u003e\u003ccode\u003e7c50688\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with path option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/5a801f44d8bd5e1ab6f8e9f8923f8ef39eaa6e75\"\u003e\u003ccode\u003e5a801f4\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with cookie_domain option - fixes \u003ca href=\"https://redirect.github.com/ankane/ahoy/issues/581\"\u003e#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/ahoy/compare/v5.4.0...v5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18n-js` from 4.2.3 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fnando/i18n-js/blob/main/CHANGELOG.md\"\u003ei18n-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/f8fb0dc0b01e7e639a6eb5dd875adbaa78858d8f\"\u003e\u003ccode\u003ef8fb0dc\u003c/code\u003e\u003c/a\u003e Bump up version (4.2.4).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/2cbea21df1ac16685a4e974716296853eccc0d49\"\u003e\u003ccode\u003e2cbea21\u003c/code\u003e\u003c/a\u003e Remove benchmark gem (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9f99172d197b586dab34f4cf6a08a1df9703222f\"\u003e\u003ccode\u003e9f99172\u003c/code\u003e\u003c/a\u003e Update matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9096c6e63bbbc24900bb10cfd0d42b6a89470c1c\"\u003e\u003ccode\u003e9096c6e\u003c/code\u003e\u003c/a\u003e Fix rubocop warnings.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/237b69b34f73873c2a3c753c45b208e670d15a31\"\u003e\u003ccode\u003e237b69b\u003c/code\u003e\u003c/a\u003e Update --quiet param description (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/1f3305ffa531614de22070ec3a0acbb592902636\"\u003e\u003ccode\u003e1f3305f\u003c/code\u003e\u003c/a\u003e Update action.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/674cb0781bdba259e7a25fcd2df6f8dd21dc5276\"\u003e\u003ccode\u003e674cb07\u003c/code\u003e\u003c/a\u003e Fix rubocop warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/877e6f1de96126021cce39f802377ffeead79ff4\"\u003e\u003ccode\u003e877e6f1\u003c/code\u003e\u003c/a\u003e Update actions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/7e27159f535643bc3080dce132a5ae953c4034ea\"\u003e\u003ccode\u003e7e27159\u003c/code\u003e\u003c/a\u003e Require ruby 3.2+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/58c32fdc576a499eb2433bd9d633d537f8a696d8\"\u003e\u003ccode\u003e58c32fd\u003c/code\u003e\u003c/a\u003e Disable rubocop rule.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fnando/i18n-js/compare/v4.2.3...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.1 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.1...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rexml` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/releases\"\u003erexml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREXML 3.4.4 - 2025-09-10\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREXML 3.4.3 - 2025-09-07\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJason Thomas\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/blob/master/NEWS.md\"\u003erexml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.4 - 2025-09-10 {#version-3-4-4}\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.3 - 2025-09-07 {#version-3-4-3}\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJason Thomas\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/4f32ea33bc3f71cced67487659beef58edcf6d56\"\u003e\u003ccode\u003e4f32ea3\u003c/code\u003e\u003c/a\u003e Add 3.4.4 entry (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/37cde3f4e660f9748f90a933daf7a9e51337d013\"\u003e\u003ccode\u003e37cde3f\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/4ffe211b501614e769a8bf37d63a7037bb5d2e73\"\u003e\u003ccode\u003e4ffe211\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/822530c70f898bd33c075622fe068c6d6433e6c9\"\u003e\u003ccode\u003e822530c\u003c/code\u003e\u003c/a\u003e Add 3.4.3 entry (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/6ba286cfd402e4040627615e2623f5b097261543\"\u003e\u003ccode\u003e6ba286c\u003c/code\u003e\u003c/a\u003e Reject no root element XML as an invalid XML (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/b5b148ed3c8a02fb53e971e312cee94b5301555a\"\u003e\u003ccode\u003eb5b148e\u003c/code\u003e\u003c/a\u003e The Zlib::GzipReader in JRuby does not behave as expected with REXML, so the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/1531862d18ec3ecd659060d60b8bb49accee5a42\"\u003e\u003ccode\u003e1531862\u003c/code\u003e\u003c/a\u003e Fixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/185bdc737da406ba4f9564726849ad3477858eb2\"\u003e\u003ccode\u003e185bdc7\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.2...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flipper-redis` from 1.3.6 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/flippercloud/flipper/releases\"\u003eflipper-redis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/cache from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/961\"\u003eflippercloud/flipper#961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config to disable the Fully Enable button by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/979\"\u003eflippercloud/flipper#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd sync mode bypass to Strict adapter by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/982\"\u003eflippercloud/flipper#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip ETag header on cache_bust to prevent stale webhook syncs by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/987\"\u003eflippercloud/flipper#987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/flippercloud/flipper/compare/v1.4.0...v1.4.1\"\u003ehttps://github.com/flippercloud/flipper/compare/v1.4.0...v1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove models to their own files by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/944\"\u003eflippercloud/flipper#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd kwarg passing for get_all and cache buster for webhook sync by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/945\"\u003eflippercloud/flipper#945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways poll even for webhook config by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/946\"\u003eflippercloud/flipper#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloud get_all etag support by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/947\"\u003eflippercloud/flipper#947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix sync behavior when remote expression value is set to nil by \u003ca href=\"https://github.com/jdnvn\"\u003e\u003ccode\u003e@​jdnvn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/949\"\u003eflippercloud/flipper#949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpression sync by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/950\"\u003eflippercloud/flipper#950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShut down polling and adjust poll interval based on headers by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/948\"\u003eflippercloud/flipper#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes confirmation trigger for disable by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flip...\n\n_Description has been truncated_","html_url":"https://github.com/CircuitVerse/CircuitVerse/pull/7320","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7320","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7320/packages"},{"uuid":"4265830819","node_id":"PR_kwDODdTws87Sfm-O","number":3207,"state":"open","title":"Bump the bundler group across 1 directory with 116 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T02:17:47.000Z","updated_at":"2026-04-22T02:21:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":116,"packages":[{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"4.9.4","new_version":"5.0.3","repository_url":"https://github.com/heartcombo/devise"},{"name":"govuk-components","old_version":"5.11.3","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"haml-rails","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/haml/haml-rails"},{"name":"oauth2","old_version":"2.0.17","new_version":"2.0.18","repository_url":"https://github.com/ruby-oauth/oauth2"},{"name":"omniauth-rails_csrf_protection","old_version":"1.0.2","new_version":"2.0.1","repository_url":"https://github.com/cookpad/omniauth-rails_csrf_protection"},{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"prometheus_exporter","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/discourse/prometheus_exporter"},{"name":"puma","old_version":"7.0.4","new_version":"8.0.0","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.3","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"haml_lint","old_version":"0.66.0","new_version":"0.73.0","repository_url":"https://github.com/sds/haml-lint"},{"name":"rubocop","old_version":"1.80.2","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"pry-byebug","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/deivid-rodriguez/pry-byebug"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.2","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"axe-core-rspec","old_version":"4.10.3","new_version":"4.11.1","repository_url":"https://github.com/dequelabs/axe-core-gems"},{"name":"brakeman","old_version":"7.1.0","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"i18n-tasks","old_version":"1.0.15","new_version":"1.1.2","repository_url":"https://github.com/glebm/i18n-tasks"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-performance","old_version":"1.26.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"},{"name":"selenium-webdriver","old_version":"4.35.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"vcr","old_version":"6.3.1","new_version":"6.4.0","repository_url":"https://github.com/vcr/vcr"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.2","new_version":"3.7.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"pry","old_version":"0.15.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.4.0","new_version":"4.4.2","repository_url":"https://github.com/rails/spring"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.6.3","repository_url":"https://github.com/ruby/net-imap"},{"name":"factory_bot","old_version":"6.5.5","new_version":"6.5.6","repository_url":"https://github.com/thoughtbot/factory_bot"},{"name":"faraday-follow_redirects","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/tisba/faraday-follow-redirects"},{"name":"json-jwt","old_version":"1.16.7","new_version":"1.17.0","repository_url":"https://github.com/nov/json-jwt"},{"name":"rack-oauth2","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/nov/rack-oauth2"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [devise](https://github.com/heartcombo/devise) | `4.9.4` | `5.0.3` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `6.1.0` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `6.1.0` |\n| [haml-rails](https://github.com/haml/haml-rails) | `2.1.0` | `3.0.0` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.17` | `2.0.18` |\n| [omniauth-rails_csrf_protection](https://github.com/cookpad/omniauth-rails_csrf_protection) | `1.0.2` | `2.0.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.2` | `1.6.3` |\n| [prometheus_exporter](https://github.com/discourse/prometheus_exporter) | `2.3.0` | `2.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.4` | `8.0.0` |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [haml_lint](https://github.com/sds/haml-lint) | `0.66.0` | `0.73.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.2` | `1.86.1` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) | `3.11.0` | `3.12.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.10.3` | `4.11.1` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `7.1.0` | `8.0.4` |\n| [i18n-tasks](https://github.com/glebm/i18n-tasks) | `1.0.15` | `1.1.2` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.35.0` | `4.43.0` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [vcr](https://github.com/vcr/vcr) | `6.3.1` | `6.4.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.7.1` |\n| [pry](https://github.com/pry/pry) | `0.15.2` | `0.16.0` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.4.0` | `4.4.2` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.6.3` |\n| [factory_bot](https://github.com/thoughtbot/factory_bot) | `6.5.5` | `6.5.6` |\n| [faraday-follow_redirects](https://github.com/tisba/faraday-follow-redirects) | `0.3.0` | `0.5.0` |\n| [json-jwt](https://github.com/nov/json-jwt) | `1.16.7` | `1.17.0` |\n| [rack-oauth2](https://github.com/nov/rack-oauth2) | `2.2.1` | `2.3.0` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 4.9.4 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0.rc\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.0 - 2026-01-23\u003c/h3\u003e\n\u003cp\u003eno changes\u003c/p\u003e\n\u003ch3\u003e5.0.0.rc - 2025-12-31\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ebreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Ruby \u0026lt; 2.7\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Rails \u0026lt; 7.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003e:bypass\u003c/code\u003e option from \u003ccode\u003esign_in\u003c/code\u003e helper, use \u003ccode\u003ebypass_sign_in\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003edevise_error_messages!\u003c/code\u003e helper, use \u003ccode\u003erender \u0026quot;devise/shared/error_messages\u0026quot;, resource: resource\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003escope\u003c/code\u003e second argument from \u003ccode\u003esign_in(resource, :admin)\u003c/code\u003e controller test helper, use \u003ccode\u003esign_in(resource, scope: :admin)\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::TestHelpers\u003c/code\u003e, use \u003ccode\u003eDevise::Test::ControllerHelpers\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5598\"\u003e#5598\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise.activerecord51?\u003c/code\u003e method.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSecretKeyFinder\u003c/code\u003e and use \u003ccode\u003eapp.secret_key_base\u003c/code\u003e as the default secret key for \u003ccode\u003eDevise.secret_key\u003c/code\u003e if a custom \u003ccode\u003eDevise.secret_key\u003c/code\u003e is not provided.\u003c/p\u003e\n\u003cp\u003eThis is potentially a breaking change because Devise previously used the following order to find a secret key:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapp.credentials.secret_key_base \u0026gt; app.secrets.secret_key_base \u0026gt; application.config.secret_key_base \u0026gt; application.secret_key_base\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, it always uses \u003ccode\u003eapplication.secret_key_base\u003c/code\u003e. Make sure you're using the same secret key after the upgrade; otherwise, previously generated tokens for \u003ccode\u003erecoverable\u003c/code\u003e, \u003ccode\u003elockable\u003c/code\u003e, and \u003ccode\u003econfirmable\u003c/code\u003e will be invalid.\n\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5645\"\u003e#5645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password instructions button label on devise view from \u003ccode\u003eSend me reset password instructions\u003c/code\u003e to \u003ccode\u003eSend me password reset instructions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5515\"\u003e#5515\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange \u003ccode\u003e\u0026lt;br\u0026gt;\u003c/code\u003e tags separating form elements to wrapping them in \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tags \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003e#5494\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e with \u003ccode\u003e[data-turbo-temporary]\u003c/code\u003e on \u003ccode\u003edevise/shared/error_messages\u003c/code\u003e partial. This has been \u003ca href=\"https://github.com/hotwired/turbo/releases/tag/v7.3.0\"\u003edeprecated by Turbo since v7.3.0 (released on Mar 1, 2023)\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you are using an older version of Turbo and the default devise template, you'll need to copy it over to your app and change that back to \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eenhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Rails 8 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/879f79fceaf2ec6525219ee7bb4057ce4db65729\"\u003e\u003ccode\u003e879f79f\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/0f4493bd0302f85d1662b71c4f2145268fecc200\"\u003e\u003ccode\u003e0f4493b\u003c/code\u003e\u003c/a\u003e Configure default permissions as read-only for the workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/8c785761bd3c717793f0da4146dd630865568567\"\u003e\u003ccode\u003e8c78576\u003c/code\u003e\u003c/a\u003e Ignore test/** folder for GH default code scanning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/c9e655e13253dc53e3c0981a8345f134bcda1fc5\"\u003e\u003ccode\u003ec9e655e\u003c/code\u003e\u003c/a\u003e Bundle update, clear dependabot security issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/3fd061095084d8f9d3f8c995c46caabcd15640fd\"\u003e\u003ccode\u003e3fd0610\u003c/code\u003e\u003c/a\u003e Add a note to the changelog about an edge case issue some users ran into\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5b008ed51c0df3223cf727e7ad07378d6329b12f\"\u003e\u003ccode\u003e5b008ed\u003c/code\u003e\u003c/a\u003e Release v5.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/916f94ed4b4bb8e7881d5cf8c6535b7ccb368f7a\"\u003e\u003ccode\u003e916f94e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller (\u003ca href=\"https://redirect.github.com/heartcombo/devise/issues/5826\"\u003e#5826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v4.9.4...v5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-components` from 5.11.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-components/releases\"\u003egovuk-components's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate supported Ruby, Rails and ViewComponent versions\u003c/li\u003e\n\u003cli\u003eSupport GOV.UK Design System version 6.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport GOV.UK Design System version 6.0.0\u003c/li\u003e\n\u003cli\u003eremove the service name and navigation items from the header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate the govuk_tag colours (magenta replaces pink and teal replaces turquoise) \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport ViewComponent version 4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eThe service name and navigation items have been removed from the header. Instead, passing a block of HTML to the header will render it in the \u003ccode\u003e.govuk-header__container\u003c/code\u003e. You'll need to add your own styles to make things render in the right place. There are examples \u003ca href=\"https://govuk-components.x-govuk.org/components/header/#adding-more-content-to-the-header\"\u003ein the guide\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/DFE-Digital/register-early-career-teachers-public/pull/2327\"\u003ein this PR\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\u003cbr /\u003e\nThe GOV.UK Header Component has changed significantly, \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-beta.1\"\u003esee the upstream release notes for more info\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-rc.0\"\u003eGOV.UK frontend 6.0.0-rc0\u003c/a\u003e \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove navigation items and service name from GOV.UK Header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ViewComponent support to 4.3 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/628\"\u003e#628\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug in the service nav where \u003ccode\u003earia-current=\u0026quot;true\u0026quot;\u003c/code\u003e was showing where it shouldn't have been. Thanks \u003ca href=\"https://github.com/DavidBiddle\"\u003e\u003ccode\u003e@​DavidBiddle\u003c/code\u003e\u003c/a\u003e for diagnosing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/621\"\u003e#621\u003c/a\u003e) and fixing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/622\"\u003e#622\u003c/a\u003e) this :heart:\u003c/li\u003e\n\u003cli\u003eChange some links in the docs from netlify.app to x-govuk.org\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8.1. Thanks \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003eAdd Netlify link to the footer to qualify for Netlify's open source plan which we're using for the \u003ca href=\"https://govuk-components.x-govuk.org/\"\u003enew guide domain\u003c/a\u003e  ccb566fd4cd1ed5a8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d0a5d8d2becbbee616a93c9160c457edc053f43d\"\u003e\u003ccode\u003ed0a5d8d\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9b10ed070a94ea6bee9e477cb04da0bf8e987eb5\"\u003e\u003ccode\u003e9b10ed0\u003c/code\u003e\u003c/a\u003e Various version bumps (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9cfa5a8ab3477672b24aa2c5c0e3ffaf49b5e25f\"\u003e\u003ccode\u003e9cfa5a8\u003c/code\u003e\u003c/a\u003e Bump supported ViewComponent to 4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c82a3b15eb528843ae8b6cd8bf6f11f8069420a0\"\u003e\u003ccode\u003ec82a3b1\u003c/code\u003e\u003c/a\u003e Bump supported Ruby and Rails versions to latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/24a77f9d4c1e25a1619d2612d8dd2417a01f147a\"\u003e\u003ccode\u003e24a77f9\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/f91de7d0e514511b2d1cced27136ca24cc412436\"\u003e\u003ccode\u003ef91de7d\u003c/code\u003e\u003c/a\u003e Fix build error in guide (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c8a496a65de0aeb7d8ae9460b416dd66a7e54ef7\"\u003e\u003ccode\u003ec8a496a\u003c/code\u003e\u003c/a\u003e Fix build error in guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/6a1dc1c9ea15d8ba70e9c04a31bcba132f912abe\"\u003e\u003ccode\u003e6a1dc1c\u003c/code\u003e\u003c/a\u003e Bump immutable from 5.1.3 to 5.1.5 in /guide (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/67980c0d6b6b3dddba6ab20476ca205c35cf4a21\"\u003e\u003ccode\u003e67980c0\u003c/code\u003e\u003c/a\u003e Bump immutable from 5.1.3 to 5.1.5 in /guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/ebf136f536c48dde8357c1c78993e90e91cbe255\"\u003e\u003ccode\u003eebf136f\u003c/code\u003e\u003c/a\u003e Release version 6.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk_design_system_formbuilder` from 5.11.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/releases\"\u003egovuk_design_system_formbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to govuk-frontend 6.1.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport defining text options for file upload component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e, thank you \u003ca href=\"https://github.com/stephencdaly\"\u003e\u003ccode\u003e@​stephencdaly\u003c/code\u003e\u003c/a\u003e for contributing this\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to govuk-frontend 5.13.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evarious minor version bumps\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/5cbe8f6e79a805327b72f09ee191cd58f09587fc\"\u003e\u003ccode\u003e5cbe8f6\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/3b721e9ba3e3cf1a685cb3dd3dbca3aeb9604150\"\u003e\u003ccode\u003e3b721e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e from x-govuk/govuk-frontend-6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1169b60d51f775aed34960bb636106efa2042ffd\"\u003e\u003ccode\u003e1169b60\u003c/code\u003e\u003c/a\u003e Update supported versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/81733638cc0ceace44e85b2fc9ef0393362bef01\"\u003e\u003ccode\u003e8173363\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c96270cb8cc861c40d0a6155355cbdfc8f9831eb\"\u003e\u003ccode\u003ec96270c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/617\"\u003e#617\u003c/a\u003e from x-govuk/fix-guide-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d6f4e390ac6f51b7120a3f3efa73669f74ed9f50\"\u003e\u003ccode\u003ed6f4e39\u003c/code\u003e\u003c/a\u003e Reqire 'active_model' in guide perosn class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b156fe78df8f74dc1574b16449d0515a9ddcd174\"\u003e\u003ccode\u003eb156fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e from stephencdaly/add-options-to-file-upload-for-java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1c573ccc92b156684ee56a02329c7ca3bb3e7947\"\u003e\u003ccode\u003e1c573cc\u003c/code\u003e\u003c/a\u003e Add example to guide for setting custom text for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/9ed0f9573b7f015f79ccbf9c67a9e5dd91c8ba58\"\u003e\u003ccode\u003e9ed0f95\u003c/code\u003e\u003c/a\u003e Support defining text options for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/a12d0c63e346946540d5cb8af44128c04fc55f8e\"\u003e\u003ccode\u003ea12d0c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/611\"\u003e#611\u003c/a\u003e from x-govuk/dependabot/bundler/slim_lint-tw-0.34.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `haml-rails` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/6c7c8ca772b2c8d36b58278c2c09498385979f85\"\u003e\u003ccode\u003e6c7c8ca\u003c/code\u003e\u003c/a\u003e Version 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e364abbc6a54f84b344c1ec846d683f927e1ae59\"\u003e\u003ccode\u003ee364abb\u003c/code\u003e\u003c/a\u003e Just use the newest one\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/30005dc31f9926dac33ba776389e9456e068b20f\"\u003e\u003ccode\u003e30005dc\u003c/code\u003e\u003c/a\u003e [CI] uses: actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e639b11fe1571cdc1e8bb48143d13a63110e09e1\"\u003e\u003ccode\u003ee639b11\u003c/code\u003e\u003c/a\u003e Properly state the supported version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/3e1b70552ca28a42a4741d3bfd3cf7cf379c6486\"\u003e\u003ccode\u003e3e1b705\u003c/code\u003e\u003c/a\u003e frozen_string_literal: ❄️\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/2c51fd5848e6d36e36f831cf827578003525d08f\"\u003e\u003ccode\u003e2c51fd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haml/haml-rails/issues/197\"\u003e#197\u003c/a\u003e from amatsuda/rails_versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/9f4703ddff0644ba52529c5cf41c1624829b16a7\"\u003e\u003ccode\u003e9f4703d\u003c/code\u003e\u003c/a\u003e Fall back to the newest templates by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/f0a9ff88ef682af3d6023e1d453ed978597abd72\"\u003e\u003ccode\u003ef0a9ff8\u003c/code\u003e\u003c/a\u003e Rails 5.1 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/852cf01c9831ee09049f7b990a648d441c876093\"\u003e\u003ccode\u003e852cf01\u003c/code\u003e\u003c/a\u003e Rails 5.2 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/8bb0351a85b83e81d1b27f18fdda17a77961c1af\"\u003e\u003ccode\u003e8bb0351\u003c/code\u003e\u003c/a\u003e Rails 6.0 scaffold templates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haml/haml-rails/compare/v2.1.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.17 to 2.0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.18\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18\"\u003e2.0.18\u003c/a\u003e - 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.18\"\u003ev2.0.18\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 526/526 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files\u003c/li\u003e\n\u003cli\u003e90.48% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/683\"\u003egh!683\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/684\"\u003egh!684\u003c/a\u003e - Improve documentation by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/686\"\u003egh!686\u003c/a\u003e- Add Incident Response Plan by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/687\"\u003egh!687\u003c/a\u003e- Add Threat Model by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/685\"\u003egh!685\u003c/a\u003e - upgrade kettle-dev v1.1.24 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade kettle-dev v1.1.52 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eAdd open collective donors to README\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/690\"\u003egh!690\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/691\"\u003egh!691\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/692\"\u003egh!692\u003c/a\u003e - Add yard-fence\n\u003cul\u003e\n\u003cli\u003ehandle braces within code fences in markdown properly by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e![OpenCollective Backers][🖇osc-backers-i]\u003c/a\u003e [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.18] - 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.18][2.0.18t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 526/526 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files\u003c/li\u003e\n\u003cli\u003e90.48% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/683\"\u003egh!683\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/684\"\u003egh!684\u003c/a\u003e - Improve documentation by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/686\"\u003egh!686\u003c/a\u003e- Add Incident Response Plan by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/687\"\u003egh!687\u003c/a\u003e- Add Threat Model by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/685\"\u003egh!685\u003c/a\u003e - upgrade kettle-dev v1.1.24 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade kettle-dev v1.1.52 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eAdd open collective donors to README\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/690\"\u003egh!690\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/691\"\u003egh!691\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/692\"\u003egh!692\u003c/a\u003e - Add yard-fence\n\u003cul\u003e\n\u003cli\u003ehandle braces within code fences in markdown properly by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/b5753116121553d56937039dafc5ea472d9a99ed\"\u003e\u003ccode\u003eb575311\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/b5af77ba42ec111dda68abdee33d631e27fdfe61\"\u003e\u003ccode\u003eb5af77b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/693\"\u003e#693\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/cf2853d9fa05999f88c9df8b1b3a8a3ed21c64e8\"\u003e\u003ccode\u003ecf2853d\u003c/code\u003e\u003c/a\u003e 📝 Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/18434156bfc988527d2453b2174e6356e233757d\"\u003e\u003ccode\u003e1843415\u003c/code\u003e\u003c/a\u003e ⬆️ kettle-dev v1.1.52, yard-fence v0.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f592dd8753966a30671ebc2e8a28ab26138b6c2b\"\u003e\u003ccode\u003ef592dd8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/692\"\u003e#692\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/2095732d7cd4eeb80fe74c89e2a2d012517e40d6\"\u003e\u003ccode\u003e2095732\u003c/code\u003e\u003c/a\u003e ⬆️ yard-fence v0.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/50f3fd08e733ed75b2cc99e077e9ea9d64a3d5d5\"\u003e\u003ccode\u003e50f3fd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/691\"\u003e#691\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/bcb0e40bfca989f164a04cbf46a4175822b7cb28\"\u003e\u003ccode\u003ebcb0e40\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f24f1a8bfbf546595aa16cd6fa82119c8218c1d3\"\u003e\u003ccode\u003ef24f1a8\u003c/code\u003e\u003c/a\u003e Create CNAME\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/bff58e1afec541feca2a337664d09c58b8a22419\"\u003e\u003ccode\u003ebff58e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/690\"\u003e#690\u003c/a\u003e from ruby-oauth/feat/yard-fence\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-rails_csrf_protection` from 1.0.2 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/releases\"\u003eomniauth-rails_csrf_protection's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix an issue with configuration delegation in Rails \u0026lt; 8.1 (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/26\"\u003e#26\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor more details, please see 1a0d39099957675f549e1f23c836f57b99b09a00.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop using deprecated \u003ccode\u003eActiveSupport::Configurable\u003c/code\u003e when this gem is running against Action Pack version 8.1 and later (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/23\"\u003e#23\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c4f53d72e6a278c02f1a6d294c4f8004354ee0b7\"\u003e\u003ccode\u003ec4f53d7\u003c/code\u003e\u003c/a\u003e Bump to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/1a0d39099957675f549e1f23c836f57b99b09a00\"\u003e\u003ccode\u003e1a0d390\u003c/code\u003e\u003c/a\u003e Fix an issue with configuration delegation in Rails \u0026lt; 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/bc315e1b09fbf6a363d5293067b42675f020fc4c\"\u003e\u003ccode\u003ebc315e1\u003c/code\u003e\u003c/a\u003e Properly silence Rails 8.0.x warning message in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/23483750b4a0a803347e02778b975886ecb82875\"\u003e\u003ccode\u003e2348375\u003c/code\u003e\u003c/a\u003e Bump to 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c283d1d159a292c5fce8ed1a2f5997f6bde209f5\"\u003e\u003ccode\u003ec283d1d\u003c/code\u003e\u003c/a\u003e Update README to add OmniAuth's built-in solution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/2cf722bd7cc310009ee626cce28a7ea52b47f649\"\u003e\u003ccode\u003e2cf722b\u003c/code\u003e\u003c/a\u003e Add workaround for deprecated AS::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/431597eb44ff8ae0bf9802d1a1dc85ebb8d2cfa3\"\u003e\u003ccode\u003e431597e\u003c/code\u003e\u003c/a\u003e Silence \u003ccode\u003e#to_time\u003c/code\u003e warning in Rails 8.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/5e9c8a27b0ccac54ca3bec7f3b49d43ddefdc4d6\"\u003e\u003ccode\u003e5e9c8a2\u003c/code\u003e\u003c/a\u003e Print Ruby version in the test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/3e62c0572bf5c9796fff5fe197f07d5ed172a7c5\"\u003e\u003ccode\u003e3e62c05\u003c/code\u003e\u003c/a\u003e Remove unnecessary logger gem entry in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/f9810a5886d692312c6d015914fdad00cf7f41b2\"\u003e\u003ccode\u003ef9810a5\u003c/code\u003e\u003c/a\u003e Update build matrix and fix build errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/compare/v1.0.2...v2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus_exporter` from 2.3.0 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/discourse/prometheus_exporter/blob/main/CHANGELOG\"\u003eprometheus_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2025-11-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: get controller full path instead of controller name - Alex Platteeuw\u003c/li\u003e\n\u003cli\u003eFEATURE: Secure PrometheusExporter scraping with SSL - Nicolas Rodriquez\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/15e9d4783db8267fb3b0c48e5464ec4c1ae58c00\"\u003e\u003ccode\u003e15e9d47\u003c/code\u003e\u003c/a\u003e version bump (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bd3817744bb5011aed6c669696ed957c23cd3fe\"\u003e\u003ccode\u003e4bd3817\u003c/code\u003e\u003c/a\u003e fix: get controller full path instead of controller name (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bb4fa333386b166a745df92be5620b11be3872a\"\u003e\u003ccode\u003e4bb4fa3\u003c/code\u003e\u003c/a\u003e Secure PrometheusExporter scraping with SSL (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/b10933453f0952cd17d143487c5adc8bb74b492a\"\u003e\u003ccode\u003eb109334\u003c/code\u003e\u003c/a\u003e Add connect_timeout: settings to PrometheusExporter::Client (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/discourse/prometheus_exporter/compare/v2.3.0...v2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.0.4 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7d5dca1a561a95c2a6b8742b52c81c73cd2b95ca\"\u003e\u003ccode\u003e7d5dca1\u003c/code\u003e\u003c/a\u003e Update SECURITY.md, native Github vuln reports [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/66e6a32de52d9beed43e1c598bda360f906ccbef\"\u003e\u003ccode\u003e66e6a32\u003c/code\u003e\u003c/a\u003e Minor correction to defaults documented in dsl.rb (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/3788eca453a64ffb05a67115d3e2a276bbaf21a3\"\u003e\u003ccode\u003e3788eca\u003c/code\u003e\u003c/a\u003e ci: limit rack-conform to main pushes and scope ragel PR runs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3908\"\u003e#3908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/57b7799201adf43cdf508f90c57b95e23f49bbcd\"\u003e\u003ccode\u003e57b7799\u003c/code\u003e\u003c/a\u003e ci: run turbo-rails only on latest stable Ruby and Rails (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/6685d6b8024c5480774b790808e4f0343e414fa5\"\u003e\u003ccode\u003e6685d6b\u003c/code\u003e\u003c/a\u003e ci: replace skip-duplicate jobs with concurrency and trigger filters (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3907\"\u003e#3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/2848c823dfc9838033d6ce342fee917e81aeedc1\"\u003e\u003ccode\u003e2848c82\u003c/code\u003e\u003c/a\u003e ci: run push workflows only on main and release branches (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3906\"\u003e#3906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97a37bb7c6a457f8846eb3ce307daadd4b38b4f8\"\u003e\u003ccode\u003e97a37bb\u003c/code\u003e\u003c/a\u003e Add release pre-merge checks and align Release.md [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3904\"\u003e#3904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.4...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.3 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 5.27.1 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLP integration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2887\"\u003e#2887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(release-detector) Prefer HEROKU_BUILD_COMMIT over deprecated HEROKU_SLUG_COMMIT by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2886\"\u003e#2886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement strict trace continuation by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3207","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3207","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3207/packages"},{"uuid":"4236108598","node_id":"PR_kwDOM_sz8c7RUJFY","number":14,"state":"closed","title":"Bump the minor-and-patch group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-11T20:05:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T02:20:39.000Z","updated_at":"2026-04-11T20:05:59.000Z","time_to_close":150310,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":23,"packages":[{"name":"bootstrap","old_version":"5.3.5","new_version":"5.3.8","repository_url":"https://github.com/twbs/bootstrap-rubygem"},{"name":"faraday-retry","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/lostisland/faraday-retry"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"pg","old_version":"1.5.9","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"importmap-rails","old_version":"2.1.0","new_version":"2.2.3","repository_url":"https://github.com/rails/importmap-rails"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"redis","old_version":"5.4.0","new_version":"5.4.1","repository_url":"https://github.com/redis/redis-rb"},{"name":"data_migrate","old_version":"11.3.0","new_version":"11.3.1","repository_url":"https://github.com/ajvargo/data-migrate"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"debug","old_version":"1.10.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.4.4","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.1","new_version":"3.6.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"selenium-webdriver","old_version":"4.33.0","new_version":"4.42.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov-console","old_version":"0.9.3","new_version":"0.9.5","repository_url":"https://github.com/chetan/simplecov-console"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"rails","old_version":"7.1.5.1","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"rubocop","old_version":"1.81.1","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"bullet","old_version":"8.0.8","new_version":"8.1.0","repository_url":"https://github.com/flyerhzm/bullet"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-rails","old_version":"2.33.4","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootstrap](https://github.com/twbs/bootstrap-rubygem) | `5.3.5` | `5.3.8` |\n| [faraday-retry](https://github.com/lostisland/faraday-retry) | `2.3.1` | `2.4.0` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.9` | `1.6.3` |\n| [importmap-rails](https://github.com/rails/importmap-rails) | `2.1.0` | `2.2.3` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [redis](https://github.com/redis/redis-rb) | `5.4.0` | `5.4.1` |\n| [data_migrate](https://github.com/ajvargo/data-migrate) | `11.3.0` | `11.3.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [debug](https://github.com/ruby/debug) | `1.10.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.4` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.1` | `3.6.1` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.33.0` | `4.42.0` |\n| [simplecov-console](https://github.com/chetan/simplecov-console) | `0.9.3` | `0.9.5` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [rails](https://github.com/rails/rails) | `7.1.5.1` | `8.1.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.81.1` | `1.86.1` |\n| [bullet](https://github.com/flyerhzm/bullet) | `8.0.8` | `8.1.0` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.4` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n\n\nUpdates `bootstrap` from 5.3.5 to 5.3.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/b4003b33f906f0783711f94bc8d1a6a8ccac0534\"\u003e\u003ccode\u003eb4003b3\u003c/code\u003e\u003c/a\u003e Update to v5.3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/e16da549fb566ae143d42d65d0403178de8fedd1\"\u003e\u003ccode\u003ee16da54\u003c/code\u003e\u003c/a\u003e Update to v5.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/f7a2c7f4dd0bdde7a9ca67b809813005a0048344\"\u003e\u003ccode\u003ef7a2c7f\u003c/code\u003e\u003c/a\u003e Update to v5.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/087adf94d68c45e0fa5051f4e3fe4729b2e58bf4\"\u003e\u003ccode\u003e087adf9\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/twbs/bootstrap-rubygem/compare/v5.3.5...v5.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faraday-retry` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lostisland/faraday-retry/releases\"\u003efaraday-retry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/49\"\u003elostisland/faraday-retry#49\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/50\"\u003elostisland/faraday-retry#50\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003erequired_ruby_version\u003c/code\u003e to support Ruby 4.0 by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/51\"\u003elostisland/faraday-retry#51\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/51\"\u003elostisland/faraday-retry#51\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.2...v2.4.0\"\u003ehttps://github.com/lostisland/faraday-retry/compare/v2.3.2...v2.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Prepare Trusted Publisher for RubyGems by \u003ca href=\"https://github.com/djsmentya\"\u003e\u003ccode\u003e@​djsmentya\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/47\"\u003elostisland/faraday-retry#47\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev2.3.2 by \u003ca href=\"https://github.com/olleolleolle\"\u003e\u003ccode\u003e@​olleolleolle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/48\"\u003elostisland/faraday-retry#48\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djsmentya\"\u003e\u003ccode\u003e@​djsmentya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/47\"\u003elostisland/faraday-retry#47\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.3.2\"\u003ehttps://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/a422231c8dbd6f3667b99bcb04f4927d33fab2a5\"\u003e\u003ccode\u003ea422231\u003c/code\u003e\u003c/a\u003e Version bump to 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/8fa8cc2fac5c168229ad2f5670e910d8fbf0ec01\"\u003e\u003ccode\u003e8fa8cc2\u003c/code\u003e\u003c/a\u003e Relax \u003ccode\u003erequired_ruby_version\u003c/code\u003e to support Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/611150171d8075cdd3e61662c16847dac1438d7e\"\u003e\u003ccode\u003e6111501\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/59688458e818b65d09b3ada441c1cfb63fac6ce9\"\u003e\u003ccode\u003e5968845\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/9950680ae7d3c188771add348ae1854d205df558\"\u003e\u003ccode\u003e9950680\u003c/code\u003e\u003c/a\u003e v2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/04bd4baaa6f879667507372a2027c5d85f86fdc5\"\u003e\u003ccode\u003e04bd4ba\u003c/code\u003e\u003c/a\u003e CI: Ensure Ruby 2.7 can run rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/1a51fe086e7560c0dcb7cddd84baa74171bd77d1\"\u003e\u003ccode\u003e1a51fe0\u003c/code\u003e\u003c/a\u003e Unignore .ruby-version and add 3.4.4 into it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/4be76d9b57d5758128afc3dfdf8218c933f7f3e3\"\u003e\u003ccode\u003e4be76d9\u003c/code\u003e\u003c/a\u003e CI: Let Publish access bundled gems, and use latest Ruby there\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/e956a6d229b16f46b03e6a7a00273e8d866983a2\"\u003e\u003ccode\u003ee956a6d\u003c/code\u003e\u003c/a\u003e Prepare Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/f91e49ab0ca08586f115e0bf27d8fba98608a1f3\"\u003e\u003ccode\u003ef91e49a\u003c/code\u003e\u003c/a\u003e CI: use conventional name for ci.yml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.9 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.9...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importmap-rails` from 2.1.0 to 2.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/importmap-rails/releases\"\u003eimportmap-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epin_all_from\u003c/code\u003e incorrectly removing \u0026quot;js\u0026quot; substring from filenames by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/313\"\u003erails/importmap-rails#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle package names with nested paths in import maps by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/322\"\u003erails/importmap-rails#322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eKeep options when updating packages in importmap by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/310\"\u003erails/importmap-rails#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake integrity calculation opt-in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/312\"\u003erails/importmap-rails#312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.1...v2.2.2\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.1...v2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove SRI support by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/309\"\u003erails/importmap-rails#309\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIntegrity is now generated by default using the assets pipeline if it is properly configured. \u003ccode\u003epin\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e commands don't download the integrity from the npm repository anymore.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.0...v2.2.1\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.0...v2.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--preload\u003c/code\u003e option to pin command by \u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/298\"\u003erails/importmap-rails#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch failure HTTP responses on calls to the npm registry  by \u003ca href=\"https://github.com/tmeire\"\u003e\u003ccode\u003e@​tmeire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/301\"\u003erails/importmap-rails#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn about vendored versionless packages by \u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/305\"\u003erails/importmap-rails#305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SRI support in importmap-rails by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/304\"\u003erails/importmap-rails#304\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/296\"\u003erails/importmap-rails#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/298\"\u003erails/importmap-rails#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmeire\"\u003e\u003ccode\u003e@​tmeire\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/301\"\u003erails/importmap-rails#301\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.0\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/6fb2bd58e3709d4996179de06aa687d6abae8a0e\"\u003e\u003ccode\u003e6fb2bd5\u003c/code\u003e\u003c/a\u003e Prepare for 2.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/682e05806a9ab3757a9841e7360fc8a9188c33f9\"\u003e\u003ccode\u003e682e058\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/322\"\u003e#322\u003c/a\u003e from rails/rmf-fix-321\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/a04dd3096ffb99f18b5b2425e9b6500006d3a0d1\"\u003e\u003ccode\u003ea04dd30\u003c/code\u003e\u003c/a\u003e Handle package names with nested paths in import maps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/9b0a9e0f5b3395f5754eb6a62e51d37a12adc0a5\"\u003e\u003ccode\u003e9b0a9e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/323\"\u003e#323\u003c/a\u003e from rails/rmf-test-ruby-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/e37bea686521343c4d67a9ed041140d54a36a4ae\"\u003e\u003ccode\u003ee37bea6\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 and Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/51c1a531327fc04ed4552bb0fd523eb43561b817\"\u003e\u003ccode\u003e51c1a53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/313\"\u003e#313\u003c/a\u003e from rails/rm-fix-282\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/3e94dfa33d1fa717880f847e4e67479a4d10a8fe\"\u003e\u003ccode\u003e3e94dfa\u003c/code\u003e\u003c/a\u003e Add some copilot prompts for this project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/7ffedcb97d72443c715979c8f8d8ec0b149056bb\"\u003e\u003ccode\u003e7ffedcb\u003c/code\u003e\u003c/a\u003e Fix pin_all_from incorrectly removing \u0026quot;js\u0026quot; substring from filenames\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/dcdb5fe1c1078ebbd567b3811745d69503bf348b\"\u003e\u003ccode\u003edcdb5fe\u003c/code\u003e\u003c/a\u003e Bump version for 2.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/40d0dc57e6c49bdff74096cee513fd263f6c91d2\"\u003e\u003ccode\u003e40d0dc5\u003c/code\u003e\u003c/a\u003e Fix update command adding extra new lines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 2.0.16 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.16...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.4.0 to 5.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-rb/blob/master/CHANGELOG.md\"\u003eredis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.4.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly handle NOSCRIPT errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/6784a3204be44d4ca7891a901295e4a4007a13a5\"\u003e\u003ccode\u003e6784a32\u003c/code\u003e\u003c/a\u003e Release 5.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/c205a8c7f22a3d387cb3cf9a8816e7a32f748c5c\"\u003e\u003ccode\u003ec205a8c\u003c/code\u003e\u003c/a\u003e Require redis-client earlier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/16c78555caeb580ab6c5365f8979259faab3142d\"\u003e\u003ccode\u003e16c7855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1312\"\u003e#1312\u003c/a\u003e from redis/translate-ensure-connected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/08a3290ea65214e2af09d456dc0439082362782f\"\u003e\u003ccode\u003e08a3290\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ewithout_reconnect\u003c/code\u003e to wrap redis-client exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/8408c0365b72b4c655a95af7934d2fad50d2d33c\"\u003e\u003ccode\u003e8408c03\u003c/code\u003e\u003c/a\u003e Update redis release URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/317a0204d8361927757117845f825b42c26fac14\"\u003e\u003ccode\u003e317a020\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1311\"\u003e#1311\u003c/a\u003e from redis/specialize-evalsha-noscript-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/d9f004fa08886309c3b4068488e057801786f836\"\u003e\u003ccode\u003ed9f004f\u003c/code\u003e\u003c/a\u003e Fix a mistake in test_hrandfield\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/57c79c2b7ccbf46d6964cc5104d52f41911e70fe\"\u003e\u003ccode\u003e57c79c2\u003c/code\u003e\u003c/a\u003e Handle RedisClient::NoScriptError\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-rb/compare/v5.4.0...v5.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `data_migrate` from 11.3.0 to 11.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ajvargo/data-migrate/releases\"\u003edata_migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSchema version -- do formatted version like activerecord by \u003ca href=\"https://github.com/mcyoung\"\u003e\u003ccode\u003e@​mcyoung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eresolve ActiveSupport::Configurable deprecation in Rails 8.2 by \u003ca href=\"https://github.com/stuarth\"\u003e\u003ccode\u003e@​stuarth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 in Appraisal by \u003ca href=\"https://github.com/vprigent\"\u003e\u003ccode\u003e@​vprigent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/366\"\u003eilyakatz/data-migrate#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcyoung\"\u003e\u003ccode\u003e@​mcyoung\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stuarth\"\u003e\u003ccode\u003e@​stuarth\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ilyakatz/data-migrate/compare/11.3.0...11.3.1\"\u003ehttps://github.com/ilyakatz/data-migrate/compare/11.3.0...11.3.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ilyakatz/data-migrate/blob/main/Changelog.md\"\u003edata_migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e11.3.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSchema version -- do formatted version like activerecord \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve ActiveSupport::Configurable deprecation in Rails 8.2 \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 in Appraisal \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/366\"\u003eilyakatz/data-migrate#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/a59d19af73b1959d2eba82cdd1022e07be4c531f\"\u003e\u003ccode\u003ea59d19a\u003c/code\u003e\u003c/a\u003e Release version 11.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/cae2c27ff1aef869ce20df04d2de3f49ba6f3b7d\"\u003e\u003ccode\u003ecae2c27\u003c/code\u003e\u003c/a\u003e Add support for Rails 8.1 in Appraisal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/0b20948ec61d441c97bc9e21c17471322f1b74ba\"\u003e\u003ccode\u003e0b20948\u003c/code\u003e\u003c/a\u003e Resolve ActiveSupport::Configurable deprecation in Rails 8.2 (\u003ca href=\"https://redirect.github.com/ajvargo/data-migrate/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/d4cebfad06b13a1fd30050986320436cae965352\"\u003e\u003ccode\u003ed4cebfa\u003c/code\u003e\u003c/a\u003e Schema version -- do formatted version like activerecord\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ajvargo/data-migrate/compare/11.3.0...11.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debug` from 1.10.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/debug/releases\"\u003edebug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecommand\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eb path: path_pattern\u003c/code\u003e is accepted in \u003ca href=\"https://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\"\u003ehttps://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix\n\u003cul\u003e\n\u003cli\u003ecatch any exception on \u003ccode\u003esingletonclass\u003c/code\u003e by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1163\"\u003eruby/debug#1163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003eKernel.__callee__\u003c/code\u003e by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1164\"\u003eruby/debug#1164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFileUtils is needed by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1168\"\u003eruby/debug#1168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecatch up Ruby 4.0\n\u003cul\u003e\n\u003cli\u003eUpdate imemo_mask to match ruby's by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1151\"\u003eruby/debug#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebacktrace changes \u003ca href=\"https://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\"\u003ehttps://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eremote\n\u003cul\u003e\n\u003cli\u003efix(DAP): Return unverified breakpoints instead of unsuccessful response by \u003ca href=\"https://github.com/dmlambo\"\u003e\u003ccode\u003e@​dmlambo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1161\"\u003eruby/debug#1161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc\n\u003cul\u003e\n\u003cli\u003eomit on older version by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1167\"\u003eruby/debug#1167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1151\"\u003eruby/debug#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmlambo\"\u003e\u003ccode\u003e@​dmlambo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1161\"\u003eruby/debug#1161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/debug/compare/v1.11.0...v1.11.1\"\u003ehttps://github.com/ruby/debug/compare/v1.11.0...v1.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfigurations\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eshow_src_lines_frame\u003c/code\u003e option by \u003ca href=\"https://github.com/HeyNonster\"\u003e\u003ccode\u003e@​HeyNonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1138\"\u003eruby/debug#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eno_repeat\u003c/code\u003e option by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1140\"\u003eruby/debug#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport XDG directories for config and history files by \u003ca href=\"https://github.com/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1055\"\u003eruby/debug#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix hitory file path by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1146\"\u003eruby/debug#1146\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix\n\u003cul\u003e\n\u003cli\u003eFix FrameInfo#block_identifier by \u003ca href=\"https://github.com/andrepiske\"\u003e\u003ccode\u003e@​andrepiske\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1137\"\u003eruby/debug#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe debug gem can abort when stepping into a rescue clause: by \u003ca href=\"https://github.com/mame\"\u003e\u003ccode\u003e@​mame\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1142\"\u003eruby/debug#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly skip TracePoint events in internal code by \u003ca href=\"https://github.com/mame\"\u003e\u003ccode\u003e@​mame\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1143\"\u003eruby/debug#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix encoding crash when LANG environment is empty by \u003ca href=\"https://github.com/jsxs0\"\u003e\u003ccode\u003e@​jsxs0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1144\"\u003eruby/debug#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc\n\u003cul\u003e\n\u003cli\u003eNormalize formatting, grammar, etc… by \u003ca href=\"https://github.com/stevenharman\"\u003e\u003ccode\u003e@​stevenharman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1136\"\u003eruby/debug#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix help message of the \u003ccode\u003eeval\u003c/code\u003e command by \u003ca href=\"https://github.com/matthieuprat\"\u003e\u003ccode\u003e@​matthieuprat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1130\"\u003eruby/debug#1130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelf-document the XDG_STATE_HOME fallback by \u003ca href=\"https://github.com/jasonkarns\"\u003e\u003ccode\u003e@​jasonkarns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1148\"\u003eruby/debug#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HeyNonster\"\u003e\u003ccode\u003e@​HeyNonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1138\"\u003eruby/debug#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrepiske\"\u003e\u003ccode\u003e@​andrepiske\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1137\"\u003eruby/debug#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevenharman\"\u003e\u003ccode\u003e@​stevenharman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1136\"\u003eruby/debug#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matthieuprat\"\u003e\u003ccode\u003e@​matthieuprat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1130\"\u003eruby/debug#1130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsxs0\"\u003e\u003ccode\u003e@​jsxs0\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1144\"\u003eruby/debug#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1055\"\u003eruby/debug#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jasonkarns\"\u003e\u003ccode\u003e@​jasonkarns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1148\"\u003eruby/debug#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/bad4d38f8330219b62f2b253d59146f5a71fd39a\"\u003e\u003ccode\u003ebad4d38\u003c/code\u003e\u003c/a\u003e v1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/88d762c8c9b157e3a2627ac3de0df1d5cb8dace5\"\u003e\u003ccode\u003e88d762c\u003c/code\u003e\u003c/a\u003e FileUtils is needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/553373a59f655177dabb2cef952ad1fae1d55fa4\"\u003e\u003ccode\u003e553373a\u003c/code\u003e\u003c/a\u003e omit on older version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/c1c1c8e2533096e82d2888170f18d7cc990407fd\"\u003e\u003ccode\u003ec1c1c8e\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003eKernel.__callee__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\"\u003e\u003ccode\u003e24f95d6\u003c/code\u003e\u003c/a\u003e catch up 4.0.0 backtrace change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/bc97d3387deb4357419e9ebc6c40f809d1858527\"\u003e\u003ccode\u003ebc97d33\u003c/code\u003e\u003c/a\u003e add a test for \u003ccode\u003eb path: ...\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\"\u003e\u003ccode\u003e1139d78\u003c/code\u003e\u003c/a\u003e support \u003ccode\u003eb path: path_expr\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/06342cd77a11af814c91726f7e5bc3f1974be9df\"\u003e\u003ccode\u003e06342cd\u003c/code\u003e\u003c/a\u003e catch any exception on \u003ccode\u003esingletonclass\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/2791573fd24aef2091cbb30aa8750f3117781752\"\u003e\u003ccode\u003e2791573\u003c/code\u003e\u003c/a\u003e fix(DAP): Return unverified breakpoints instead of unsuccessful response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/14c8a546242a5e88ed8f47607629ffbef7d3315d\"\u003e\u003ccode\u003e14c8a54\u003c/code\u003e\u003c/a\u003e Update imemo_mask to match ruby's\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/debug/compare/v1.10.0...v1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `factory_bot_rails` from 6.4.4 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/releases\"\u003efactory_bot_rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Cucumber tests by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/536\"\u003ethoughtbot/factory_bot_rails#536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003erequired_ruby_version\u003c/code\u003e to require \u0026gt;= Ruby 3.1 by \u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/538\"\u003ethoughtbot/factory_bot_rails#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd vburzynski as codeowner by \u003ca href=\"https://github.com/DoodlingDev\"\u003e\u003ccode\u003e@​DoodlingDev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/539\"\u003ethoughtbot/factory_bot_rails#539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AuthenticationGenerator for users factory creation by \u003ca href=\"https://github.com/rodrigotoledo\"\u003e\u003ccode\u003e@​rodrigotoledo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/542\"\u003ethoughtbot/factory_bot_rails#542\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rodrigotoledo\"\u003e\u003ccode\u003e@​rodrigotoledo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/542\"\u003ethoughtbot/factory_bot_rails#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DoodlingDev\"\u003e\u003ccode\u003e@​DoodlingDev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/539\"\u003ethoughtbot/factory_bot_rails#539\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.5.0...v6.5.1\"\u003ehttps://github.com/thoughtbot/factory_bot_rails/compare/v6.5.0...v6.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby 3.0 by \u003ca href=\"https://github.com/FerPerales\"\u003e\u003ccode\u003e@​FerPerales\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/507\"\u003ethoughtbot/factory_bot_rails#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRead gem version from code file by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/506\"\u003ethoughtbot/factory_bot_rails#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing required Ruby version to gemspec by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/510\"\u003ethoughtbot/factory_bot_rails#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Bundler to v2.5.23 by \u003ca href=\"https://github.com/smaboshe\"\u003e\u003ccode\u003e@​smaboshe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/515\"\u003ethoughtbot/factory_bot_rails#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix standardrb violations by \u003ca href=\"https://github.com/sarahraqueld\"\u003e\u003ccode\u003e@​sarahraqueld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/482\"\u003ethoughtbot/factory_bot_rails#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eActivate linter in CI by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/508\"\u003ethoughtbot/factory_bot_rails#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003efile_fixture\u003c/code\u003e in Factory definitions by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/427\"\u003ethoughtbot/factory_bot_rails#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix development dependencies by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/526\"\u003ethoughtbot/factory_bot_rails#526\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.2 by \u003ca href=\"https://github.com/RajRoR\"\u003e\u003ccode\u003e@​RajRoR\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/495\"\u003ethoughtbot/factory_bot_rails#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003epush\u003c/code\u003e builds to the \u003ccode\u003emain\u003c/code\u003e branch by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/527\"\u003ethoughtbot/factory_bot_rails#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support for rails v8 by \u003ca href=\"https://github.com/jamesoneill997\"\u003e\u003ccode\u003e@​jamesoneill997\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/521\"\u003ethoughtbot/factory_bot_rails#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd latest Ruby and Rails versions to the build by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/529\"\u003ethoughtbot/factory_bot_rails#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate gemspec with supported Rails version by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/531\"\u003ethoughtbot/factory_bot_rails#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun Cucumber feature tests on CI by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/530\"\u003ethoughtbot/factory_bot_rails#530\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FerPerales\"\u003e\u003ccode\u003e@​FerPerales\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/507\"\u003ethoughtbot/factory_bot_rails#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/506\"\u003ethoughtbot/factory_bot_rails#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RajRoR\"\u003e\u003ccode\u003e@​RajRoR\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/495\"\u003ethoughtbot/factory_bot_rails#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jamesoneill997\"\u003e\u003ccode\u003e@​jamesoneill997\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/521\"\u003ethoughtbot/factory_bot_rails#521\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.0\"\u003ehttps://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/blob/main/NEWS.md\"\u003efactory_bot_rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.5.1 (September 5, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: Add AuthenticationGenerator for users factory creation (Rodrigo Toledo)\u003c/li\u003e\n\u003cli\u003eChanged: Update required_ruby_version to require \u0026gt;= Ruby 3.1 (y-yagi)\u003c/li\u003e\n\u003cli\u003eInternal: Fix Cucumber tests (Neil Carvalho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0 (June 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: First-party support for \u003ca href=\"https://api.rubyonrails.org/classes/ActiveSupport/Testing/FileFixtures.html#method-i-file_fixture\"\u003e\u003ccode\u003efile_fixture\u003c/code\u003e\u003c/a\u003e within factory blocks (Sean Doyle)\u003c/li\u003e\n\u003cli\u003eChanged: Drop support for Ruby 3.0 (Fernando Perales)\u003c/li\u003e\n\u003cli\u003eChanged: Add required Ruby version to the gemspec (Christoph Lipautz)\u003c/li\u003e\n\u003cli\u003eInternal: Add Rails 7.2 to the test matrix (Raj Kumar)\u003c/li\u003e\n\u003cli\u003eInternal: Add Rails 8.0 to the test matrix (James O'Neill)\u003c/li\u003e\n\u003cli\u003eInternal: Run \u003ccode\u003estandardrb\u003c/code\u003e on CI runs (Christoph Lipautz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/dfdef4c70a76d36058cf77fc1ccd9904a2bf0beb\"\u003e\u003ccode\u003edfdef4c\u003c/code\u003e\u003c/a\u003e Bump to 6.5.1 (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/b6c4e8d1fc495806f3ee353e79a5470d3f2638a6\"\u003e\u003ccode\u003eb6c4e8d\u003c/code\u003e\u003c/a\u003e Add AuthenticationGenerator for users factory creation (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/364bd890bfcfb538fa31318759c93d7e5c4e11a1\"\u003e\u003ccode\u003e364bd89\u003c/code\u003e\u003c/a\u003e add vburzynski as codeowner (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/8e45bc342682b610952935354fa478bbe616390f\"\u003e\u003ccode\u003e8e45bc3\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003erequired_ruby_version\u003c/code\u003e to require \u0026gt;= Ruby 3.1 (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/6b757ebab3c9420b014fe69812f8ed0c5a77873f\"\u003e\u003ccode\u003e6b757eb\u003c/code\u003e\u003c/a\u003e Fix Cucumber tests (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/44acf670588ab5a24bddfd75415011c5c2373e2f\"\u003e\u003ccode\u003e44acf67\u003c/code\u003e\u003c/a\u003e Bump to 6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/83109a5ff2a0601df21547a56797635616e0d8eb\"\u003e\u003ccode\u003e83109a5\u003c/code\u003e\u003c/a\u003e Run Cucumber feature tests on CI (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/b2047c108c90341c351aeaa5cfe5fc9af715bcdb\"\u003e\u003ccode\u003eb2047c1\u003c/code\u003e\u003c/a\u003e Update gemspec with supported Rails version (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/c17c161b2370c7bce0b95d54f72337f8dd62c213\"\u003e\u003ccode\u003ec17c161\u003c/code\u003e\u003c/a\u003e Add latest Ruby and Rails versions to the build (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/2e30e1737977ad1e07dd0f46306def09712f56fb\"\u003e\u003ccode\u003e2e30e17\u003c/code\u003e\u003c/a\u003e Add Rails 8 to the build matrix (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.5.1 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003cp\u003eIt's Spring countdown in the Northern hemisphere 🌸\u003c/p\u003e\n\u003ch2\u003eSecurity, performance improvements and bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: polynomial regex on uncontrolled input by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3196\"\u003efaker-ruby/faker#3196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: replaces list of postcodes in \u003ccode\u003eja/address.yml\u003c/code\u003e with a 7-digit format by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3201\"\u003efaker-ruby/faker#3201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary whitespace from code blocks in READMEs by \u003ca href=\"https://github.com/ryotaro-shirai\"\u003e\u003ccode\u003e@​ryotaro-shirai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3209\"\u003efaker-ruby/faker#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument lazy load experiment results by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3205\"\u003efaker-ruby/faker#3205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[skip ci] Add-backtick by \u003ca href=\"https://github.com/OzuAkira\"\u003e\u003ccode\u003e@​OzuAkira\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3210\"\u003efaker-ruby/faker#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZeitwerk experiment changes and results [skip ci] by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3213\"\u003efaker-ruby/faker#3213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove duplicate reference link in README.md by \u003ca href=\"https://github.com/yutasb\"\u003e\u003ccode\u003e@​yutasb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3217\"\u003efaker-ruby/faker#3217\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdate development dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rubocop from 1.84.0 to 1.84.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3202\"\u003efaker-ruby/faker#3202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump irb from 1.16.0 to 1.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3203\"\u003efaker-ruby/faker#3203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop version and fix offenses by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3198\"\u003efaker-ruby/faker#3198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rdoc from 7.1.0 to 7.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3204\"\u003efaker-ruby/faker#3204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop to 1.84.2 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3215\"\u003efaker-ruby/faker#3215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop-minitest from 0.38.2 to 0.39.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3216\"\u003efaker-ruby/faker#3216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop to v1.85.0 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3220\"\u003efaker-ruby/faker#3220\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryotaro-shirai\"\u003e\u003ccode\u003e@​ryotaro-shirai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3209\"\u003efaker-ruby/faker#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OzuAkira\"\u003e\u003ccode\u003e@​OzuAkira\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3210\"\u003efaker-ruby/faker#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yutasb\"\u003e\u003ccode\u003e@​yutasb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3217\"\u003efaker-ruby/faker#3217\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.6.0...v3.6.1\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.6.0...v3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.6.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.6.0\"\u003ev3.6.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003cp\u003eFirst release of the new year!\u003c/p\u003e\n\u003cp\u003eThis version comes with some performance improvements (speeds faker load time by 17%!) and removal of deprecated generators.\u003c/p\u003e\n\u003cp\u003eIt also drops support to Ruby's EOL \u003ccode\u003e3.0\u003c/code\u003e. The minimum supported Ruby version is \u003ccode\u003e3.1\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.0 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3167\"\u003efaker-ruby/faker#3167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoves deprecated generators\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eFaker::Twitter\u003c/code\u003e and \u003ccode\u003eFaker::BossaNova\u003c/code\u003e have been removed. Please use the new generators \u003ccode\u003eFaker::X\u003c/code\u003e and \u003ccode\u003eFaker::Music::BossaNova\u003c/code\u003e and check the new docs for more details in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3190\"\u003efaker-ruby/faker#3190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements and bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload OpenSSL by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3188\"\u003efaker-ruby/faker#3188\u003c/a\u003e - this speeds faker load time by 17%!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.6.1\"\u003ev3.6.1\u003c/a\u003e (2026-03-04)\u003c/h2\u003e\n\u003cp\u003eIt's almost Spring time in the Northern hemisphere 🌸\u003c/p\u003e\n\u003ch3\u003eSecurity, performance improvements and bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: polynomial regex on uncontrolled input by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3196\"\u003efaker-ruby/faker#3196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: replaces list of postcodes in \u003ccode\u003eja/address.yml\u003c/code\u003e with a 7-digit format by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3201\"\u003efaker-ruby/faker#3201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary whitespace from code blocks in READMEs by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/bendycode/prmetrics/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendycode%2Fprmetrics/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4217082207","node_id":"PR_kwDOQfHUuM7QdYn3","number":5,"state":"closed","title":"chore(deps): bump pg from 1.6.2 to 1.6.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T04:02:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-07T10:35:30.000Z","updated_at":"2026-04-12T04:02:51.000Z","time_to_close":408439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.2 to 1.6.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.2\u0026new-version=1.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/vibers-leo/dlab/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibers-leo%2Fdlab/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4211467817","node_id":"PR_kwDOR7C4sc7QMdKy","number":10,"state":"closed","title":"Bump pg from 1.6.2 to 1.6.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-07T01:32:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-06T11:54:07.000Z","updated_at":"2026-04-07T01:32:41.000Z","time_to_close":49102,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.2 to 1.6.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.2\u0026new-version=1.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Rio-cyber-gif/specialty-sweets-journal-v2/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rio-cyber-gif%2Fspecialty-sweets-journal-v2/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}],"issue_packages":[{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-18T21:10:30.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5914170013","node_id":"PR_kwDOAHOAqs8AAAABJNQJUg","number":44739,"state":"open","title":"DEPS: Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T21:10:30.000Z","updated_at":"2026-10-18T21:10:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"DEPS: Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n- [Changelog](https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0)","html_url":"https://github.com/discourse/discourse/pull/44739","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/discourse%2Fdiscourse/issues/44739","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44739/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-18T01:03:27.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5904830289","node_id":"PR_kwDOSkPkLM8AAAABJGFNMg","number":139,"state":"open","title":"build(deps): bump the klipper-api group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-18T01:03:27.000Z","updated_at":"2026-10-18T01:05:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"klipper-api","update_count":3,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"webmock","old_version":"3.26.4","new_version":"3.34.0","repository_url":"https://github.com/bblimke/webmock"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the klipper-api group with 3 updates in the /apps/klipper-api directory: [rails](https://github.com/rails/rails), [pg](https://github.com/ged/ruby-pg) and [webmock](https://github.com/bblimke/webmock).\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `webmock` from 3.26.4 to 3.34.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/releases\"\u003ewebmock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.34.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003ewith(query: :any)\u003c/code\u003e to match any query string (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003estub_request(:get, \u0026quot;www.example.com\u0026quot;).with(query: :any)\u003c/code\u003e matches requests with any query string, or none. RSpec's \u003ccode\u003eanything\u003c/code\u003e works the same way. Previously, this raised \u003ccode\u003eNoMethodError\u003c/code\u003e, and you had to write \u003ccode\u003ewith(query: hash_including({}))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eUse a URL without query parameters when passing \u003ccode\u003equery: :any\u003c/code\u003e. Otherwise, WebMock raises \u003ccode\u003eArgumentError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/nightpool\"\u003enightpool\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRaise a clear \u003ccode\u003eArgumentError\u003c/code\u003e for an unsupported \u003ccode\u003equery\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003ePreviously, a value such as \u003ccode\u003ewith(query: :all)\u003c/code\u003e raised \u003ccode\u003eNoMethodError\u003c/code\u003e (undefined method \u003ccode\u003esplit\u003c/code\u003e). The new error lists the supported values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow \u003ccode\u003eanything\u003c/code\u003e for keys given without a value to \u003ccode\u003ehash_including\u003c/code\u003e or \u003ccode\u003ehash_excluding\u003c/code\u003e outside RSpec\u003c/p\u003e\n\u003cp\u003ePreviously, with Minitest or Test::Unit, messages showed \u003ccode\u003e#\u0026lt;WebMock::Matchers::AnyArgMatcher:0x...\u0026gt;\u003c/code\u003e, for example for \u003ccode\u003ewith(query: hash_including(:a))\u003c/code\u003e. RSpec's own matchers already showed \u003ccode\u003eanything\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProvide \u003ccode\u003eHTTP_HOST\u003c/code\u003e to \u003ccode\u003eto_rack\u003c/code\u003e apps when the client has not supplied a Host header (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, requests from some HTTP clients reached the Rack app without \u003ccode\u003eHTTP_HOST\u003c/code\u003e. This caused host checks such as Sinatra's \u003ccode\u003eHostAuthorization\u003c/code\u003e to see an empty host.\u003c/p\u003e\n\u003cp\u003eWebMock now fills in the host from the request URL, including the port when it is not the default. An explicit Host header is preserved.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/benoittgt\"\u003eBenoit Tigeot\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rack compatibility for \u003ccode\u003eto_rack\u003c/code\u003e apps\u003c/p\u003e\n\u003cp\u003eThe request environment now passes \u003ccode\u003eRack::Lint\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSERVER_PORT\u003c/code\u003e and \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e are now strings. If your app or tests read them directly, use string comparisons, such as \u003ccode\u003eenv['SERVER_PORT'] == \u0026quot;80\u0026quot;\u003c/code\u003e. The environment also includes \u003ccode\u003eSERVER_PROTOCOL\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCONTENT_TYPE\u003c/code\u003e is omitted when the request has no content type. The \u003ccode\u003eContent-Length\u003c/code\u003e header is passed only as \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e, without an extra \u003ccode\u003eHTTP_CONTENT_LENGTH\u003c/code\u003e entry. \u003ccode\u003eTransfer-Encoding\u003c/code\u003e is removed because the body has already been decoded.\u003c/p\u003e\n\u003cp\u003eRepeated header values are joined into one string. Header values and the body read from \u003ccode\u003erack.input\u003c/code\u003e now use binary (\u003ccode\u003eASCII-8BIT\u003c/code\u003e) strings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.33.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003eeffective_url\u003c/code\u003e as a String for stubbed Typhoeus responses (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/869\"\u003e#869\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, this was an \u003ccode\u003eAddressable::URI\u003c/code\u003e. If your code calls methods such as \u003ccode\u003eeffective_url.host\u003c/code\u003e, parse the returned string into a URI first.\u003c/p\u003e\n\u003cp\u003eThe URL keeps the request's port, query order and encoding. It follows curl's formatting: for example, \u003ccode\u003ehttp://example.com:80\u003c/code\u003e becomes \u003ccode\u003ehttp://example.com:80/\u003c/code\u003e. Stubbed timeouts now provide an \u003ccode\u003eeffective_url\u003c/code\u003e too.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tbrammar\"\u003eTom Brammar\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect removal of default ports from displayed URLs\u003c/p\u003e\n\u003cp\u003eWebMock could accidentally remove \u003ccode\u003e:80\u003c/code\u003e or \u003ccode\u003e:443\u003c/code\u003e from a URL's path or query. For example, an error message could show \u003ccode\u003e/foo/bar\u003c/code\u003e instead of \u003ccode\u003e/foo:80/bar\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eOnly the host's default port is now removed. This also works when the port is immediately followed by a query string, as in \u003ccode\u003ehttp://example.com:80?a=b\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bblimke/webmock/blob/master/CHANGELOG.md\"\u003ewebmock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.34.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003ewith(query: :any)\u003c/code\u003e to match any query string (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003estub_request(:get, \u0026quot;www.example.com\u0026quot;).with(query: :any)\u003c/code\u003e matches requests with any query string, or none. RSpec's \u003ccode\u003eanything\u003c/code\u003e works the same way. Previously, this raised \u003ccode\u003eNoMethodError\u003c/code\u003e, and you had to write \u003ccode\u003ewith(query: hash_including({}))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eUse a URL without query parameters when passing \u003ccode\u003equery: :any\u003c/code\u003e. Otherwise, WebMock raises \u003ccode\u003eArgumentError\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/nightpool\"\u003enightpool\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRaise a clear \u003ccode\u003eArgumentError\u003c/code\u003e for an unsupported \u003ccode\u003equery\u003c/code\u003e option\u003c/p\u003e\n\u003cp\u003ePreviously, a value such as \u003ccode\u003ewith(query: :all)\u003c/code\u003e raised \u003ccode\u003eNoMethodError\u003c/code\u003e (undefined method \u003ccode\u003esplit\u003c/code\u003e). The new error lists the supported values.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow \u003ccode\u003eanything\u003c/code\u003e for keys given without a value to \u003ccode\u003ehash_including\u003c/code\u003e or \u003ccode\u003ehash_excluding\u003c/code\u003e outside RSpec\u003c/p\u003e\n\u003cp\u003ePreviously, with Minitest or Test::Unit, messages showed \u003ccode\u003e#\u0026lt;WebMock::Matchers::AnyArgMatcher:0x...\u0026gt;\u003c/code\u003e, for example for \u003ccode\u003ewith(query: hash_including(:a))\u003c/code\u003e. RSpec's own matchers already showed \u003ccode\u003eanything\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProvide \u003ccode\u003eHTTP_HOST\u003c/code\u003e to \u003ccode\u003eto_rack\u003c/code\u003e apps when the client has not supplied a Host header (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, requests from some HTTP clients reached the Rack app without \u003ccode\u003eHTTP_HOST\u003c/code\u003e. This caused host checks such as Sinatra's \u003ccode\u003eHostAuthorization\u003c/code\u003e to see an empty host.\u003c/p\u003e\n\u003cp\u003eWebMock now fills in the host from the request URL, including the port when it is not the default. An explicit Host header is preserved.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/benoittgt\"\u003eBenoit Tigeot\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix Rack compatibility for \u003ccode\u003eto_rack\u003c/code\u003e apps\u003c/p\u003e\n\u003cp\u003eThe request environment now passes \u003ccode\u003eRack::Lint\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eSERVER_PORT\u003c/code\u003e and \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e are now strings. If your app or tests read them directly, use string comparisons, such as \u003ccode\u003eenv['SERVER_PORT'] == \u0026quot;80\u0026quot;\u003c/code\u003e. The environment also includes \u003ccode\u003eSERVER_PROTOCOL\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eCONTENT_TYPE\u003c/code\u003e is omitted when the request has no content type. The \u003ccode\u003eContent-Length\u003c/code\u003e header is passed only as \u003ccode\u003eCONTENT_LENGTH\u003c/code\u003e, without an extra \u003ccode\u003eHTTP_CONTENT_LENGTH\u003c/code\u003e entry. \u003ccode\u003eTransfer-Encoding\u003c/code\u003e is removed because the body has already been decoded.\u003c/p\u003e\n\u003cp\u003eRepeated header values are joined into one string. Header values and the body read from \u003ccode\u003erack.input\u003c/code\u003e now use binary (\u003ccode\u003eASCII-8BIT\u003c/code\u003e) strings.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.33.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eReturn \u003ccode\u003eeffective_url\u003c/code\u003e as a String for stubbed Typhoeus responses (\u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/869\"\u003e#869\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003ePreviously, this was an \u003ccode\u003eAddressable::URI\u003c/code\u003e. If your code calls methods such as \u003ccode\u003eeffective_url.host\u003c/code\u003e, parse the returned string into a URI first.\u003c/p\u003e\n\u003cp\u003eThe URL keeps the request's port, query order and encoding. It follows curl's formatting: for example, \u003ccode\u003ehttp://example.com:80\u003c/code\u003e becomes \u003ccode\u003ehttp://example.com:80/\u003c/code\u003e. Stubbed timeouts now provide an \u003ccode\u003eeffective_url\u003c/code\u003e too.\u003c/p\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/tbrammar\"\u003eTom Brammar\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix incorrect removal of default ports from displayed URLs\u003c/p\u003e\n\u003cp\u003eWebMock could accidentally remove \u003ccode\u003e:80\u003c/code\u003e or \u003ccode\u003e:443\u003c/code\u003e from a URL's path or query. For example, an error message could show \u003ccode\u003e/foo/bar\u003c/code\u003e instead of \u003ccode\u003e/foo:80/bar\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/11392e455b9ee025b72cbebcaaa9e0a9f201bac0\"\u003e\u003ccode\u003e11392e4\u003c/code\u003e\u003c/a\u003e Version 3.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/eabc1513f3223bbd13ede8db8f57557f90529028\"\u003e\u003ccode\u003eeabc151\u003c/code\u003e\u003c/a\u003e Close the gaps a review found in the Rack env\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/38f08be5520864ab88218ff67ac712720403ba00\"\u003e\u003ccode\u003e38f08be\u003c/code\u003e\u003c/a\u003e Make the Rack env for to_rack apps follow the Rack spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/732328be7250ea5a3ae1448c5417ff04dcaf4a2c\"\u003e\u003ccode\u003e732328b\u003c/code\u003e\u003c/a\u003e Tidy the Rack host fallback and its specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/3d831ce639f5889ed1f440aa3932e81b8c21a4f0\"\u003e\u003ccode\u003e3d831ce\u003c/code\u003e\u003c/a\u003e Set HTTP_HOST in the Rack env instead of the Net::HTTP signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/aa71fc158488e99e4e64a6f11d5007386fc9b70e\"\u003e\u003ccode\u003eaa71fc1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1084\"\u003e#1084\u003c/a\u003e from benoittgt/prevent-empty-host\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/5fbb394ac6fadeba50e5b23ebbd152c6904e92ec\"\u003e\u003ccode\u003e5fbb394\u003c/code\u003e\u003c/a\u003e Reject query :any with a URI query and accept anything matchers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/d94e918ca65145154fd273fac6dc78815292d530\"\u003e\u003ccode\u003ed94e918\u003c/code\u003e\u003c/a\u003e Reject unsupported query options and describe :any as anything\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/0b56b627b323fd78e0ab5e63a404d7027b364706\"\u003e\u003ccode\u003e0b56b62\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bblimke/webmock/issues/1099\"\u003e#1099\u003c/a\u003e from nightpool/add-any-query-option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bblimke/webmock/commit/78d1078486c38cf89b1364297f4f8531f1f8f72f\"\u003e\u003ccode\u003e78d1078\u003c/code\u003e\u003c/a\u003e Version 3.33.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bblimke/webmock/compare/v3.26.4...v3.34.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Borussia80/Klipper/pull/139","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Borussia80%2FKlipper/issues/139","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/139/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-14T21:04:33.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5855641140","node_id":"PR_kwDOMqZhsc8AAAABIfJqbw","number":231,"state":"closed","title":"Bump the production-dependencies group with 59 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-14T21:04:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-14T21:04:33.000Z","updated_at":"2026-10-14T21:04:57.000Z","time_to_close":14,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"production-dependencies","update_count":59,"packages":[{"name":"acme-client","old_version":"2.0.26","new_version":"2.0.35","repository_url":"https://github.com/unixcharles/acme-client"},{"name":"argon2-kdf","old_version":"0.3.1","new_version":"1.0.0","repository_url":"https://github.com/ankane/argon2-kdf"},{"name":"cgi","old_version":"0.5.1","new_version":"0.5.2","repository_url":"https://github.com/ruby/cgi"},{"name":"google-apis-cloudresourcemanager_v3","old_version":"0.61.0","new_version":"0.65.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-iam_v1","old_version":"0.85.0","new_version":"0.92.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-cloud-compute-v1","old_version":"3.5.0","new_version":"3.12.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-cloud-storage","old_version":"1.59.0","new_version":"1.62.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"committee","old_version":"5.6.1","new_version":"5.6.4","repository_url":"https://github.com/interagent/committee"},{"name":"excon","old_version":"1.6.0","new_version":"1.7.2","repository_url":"https://github.com/excon/excon"},{"name":"jwt","old_version":"3.2.0","new_version":"3.3.0","repository_url":"https://github.com/jwt/ruby-jwt"},{"name":"mail","old_version":"2.9.0","new_version":"2.9.1","repository_url":"https://github.com/mikel/mail"},{"name":"net-ssh","old_version":"7.3.2","new_version":"7.3.3","repository_url":"https://github.com/net-ssh/net-ssh"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.3","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"rake","old_version":"13.3.1","new_version":"13.4.2","repository_url":"https://github.com/ruby/rake"},{"name":"roda","old_version":"3.103.0","new_version":"3.108.0","repository_url":"https://github.com/jeremyevans/roda"},{"name":"rodauth","old_version":"2.43.0","new_version":"2.48.0","repository_url":"https://github.com/jeremyevans/rodauth"},{"name":"sentry-ruby","old_version":"6.6.0","new_version":"7.1.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sequel","old_version":"5.103.0","new_version":"5.108.0","repository_url":"https://github.com/jeremyevans/sequel"},{"name":"sequel_pg","old_version":"1.19.0","new_version":"1.20.0","repository_url":"https://github.com/jeremyevans/sequel_pg"},{"name":"stripe","old_version":"18.4.0","new_version":"19.6.2","repository_url":"https://github.com/stripe/stripe-ruby"},{"name":"tilt","old_version":"2.6.1","new_version":"2.9.0","repository_url":"https://github.com/jeremyevans/tilt"},{"name":"warning","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/jeremyevans/ruby-warning"},{"name":"cbor","old_version":"0.5.10.1","new_version":"0.5.10.3"},{"name":"concurrent-ruby","old_version":"1.3.7","new_version":"1.3.8","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"csv","old_version":"3.3.5","new_version":"3.3.6","repository_url":"https://github.com/ruby/csv"},{"name":"date","old_version":"3.5.1","new_version":"3.6.0","repository_url":"https://github.com/ruby/date"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"ffi-compiler","old_version":"1.3.2","new_version":"1.4.2","repository_url":"https://github.com/ffi/ffi-compiler"},{"name":"gapic-common","old_version":"1.3.0","new_version":"1.5.1","repository_url":"https://github.com/googleapis/ruby-core-libraries"},{"name":"google-apis-core","old_version":"1.0.2","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-iamcredentials_v1","old_version":"0.26.0","new_version":"0.28.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-apis-storage_v1","old_version":"0.61.0","new_version":"0.69.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"google-cloud-common","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"google-cloud-core","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-cloud-env","old_version":"2.3.1","new_version":"2.4.1","repository_url":"https://github.com/googleapis/ruby-cloud-env"},{"name":"google-cloud-errors","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/googleapis/google-cloud-ruby"},{"name":"google-protobuf","old_version":"4.34.1","new_version":"4.36.2","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"googleapis-common-protos","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"googleapis-common-protos-types","old_version":"1.22.0","new_version":"1.23.0","repository_url":"https://github.com/googleapis/common-protos-ruby"},{"name":"googleauth","old_version":"1.16.2","new_version":"1.17.5","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"grpc","old_version":"1.80.0","new_version":"1.84.0","repository_url":"https://github.com/google/grpc"},{"name":"io-console","old_version":"0.8.2","new_version":"0.9.4","repository_url":"https://github.com/ruby/io-console"},{"name":"json","old_version":"2.21.1","new_version":"2.21.2","repository_url":"https://github.com/ruby/json"},{"name":"multi_json","old_version":"1.20.0","new_version":"1.21.2","repository_url":"https://github.com/sferik/multi_json"},{"name":"net-http","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/ruby/net-http"},{"name":"net-imap","old_version":"0.6.4.1","new_version":"0.6.8","repository_url":"https://github.com/ruby/net-imap"},{"name":"net-protocol","old_version":"0.2.2","new_version":"0.4.0","repository_url":"https://github.com/ruby/net-protocol"},{"name":"net-smtp","old_version":"0.5.1","new_version":"0.5.2","repository_url":"https://github.com/ruby/net-smtp"},{"name":"omniauth-oauth2","old_version":"1.8.0","new_version":"1.9.0","repository_url":"https://github.com/omniauth/omniauth-oauth2"},{"name":"openssl","old_version":"4.0.1","new_version":"4.0.2","repository_url":"https://github.com/ruby/openssl"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"rack","old_version":"3.2.6","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"reline","old_version":"0.6.3","new_version":"0.7.0","repository_url":"https://github.com/ruby/reline"},{"name":"representable","old_version":"3.2.0","new_version":"3.3.1","repository_url":"https://github.com/trailblazer/representable"},{"name":"retriable","old_version":"3.4.1","new_version":"4.2.0","repository_url":"https://github.com/kamui/retriable"},{"name":"signet","old_version":"0.21.0","new_version":"0.22.1","repository_url":"https://github.com/googleapis/signet"},{"name":"tpm-key_attestation","old_version":"0.14.1","new_version":"0.14.2","repository_url":"https://github.com/cedarcode/tpm-key_attestation"},{"name":"uri","old_version":"1.1.1","new_version":"1.1.2","repository_url":"https://github.com/ruby/uri"},{"name":"version_gem","old_version":"1.1.14","new_version":"1.1.15","repository_url":"https://github.com/ruby-oauth/version_gem"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the production-dependencies group with 59 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [acme-client](https://github.com/unixcharles/acme-client) | `2.0.26` | `2.0.35` |\n| [argon2-kdf](https://github.com/ankane/argon2-kdf) | `0.3.1` | `1.0.0` |\n| [cgi](https://github.com/ruby/cgi) | `0.5.1` | `0.5.2` |\n| [google-apis-cloudresourcemanager_v3](https://github.com/googleapis/google-api-ruby-client) | `0.61.0` | `0.65.0` |\n| [google-apis-iam_v1](https://github.com/googleapis/google-api-ruby-client) | `0.85.0` | `0.92.0` |\n| [google-cloud-compute-v1](https://github.com/googleapis/google-cloud-ruby) | `3.5.0` | `3.12.0` |\n| [google-cloud-storage](https://github.com/googleapis/google-cloud-ruby) | `1.59.0` | `1.62.0` |\n| [committee](https://github.com/interagent/committee) | `5.6.1` | `5.6.4` |\n| [excon](https://github.com/excon/excon) | `1.6.0` | `1.7.2` |\n| [jwt](https://github.com/jwt/ruby-jwt) | `3.2.0` | `3.3.0` |\n| [mail](https://github.com/mikel/mail) | `2.9.0` | `2.9.1` |\n| [net-ssh](https://github.com/net-ssh/net-ssh) | `7.3.2` | `7.3.3` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.3` |\n| [rake](https://github.com/ruby/rake) | `13.3.1` | `13.4.2` |\n| [roda](https://github.com/jeremyevans/roda) | `3.103.0` | `3.108.0` |\n| [rodauth](https://github.com/jeremyevans/rodauth) | `2.43.0` | `2.48.0` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `6.6.0` | `7.1.0` |\n| [sequel](https://github.com/jeremyevans/sequel) | `5.103.0` | `5.108.0` |\n| [sequel_pg](https://github.com/jeremyevans/sequel_pg) | `1.19.0` | `1.20.0` |\n| [stripe](https://github.com/stripe/stripe-ruby) | `18.4.0` | `19.6.2` |\n| [tilt](https://github.com/jeremyevans/tilt) | `2.6.1` | `2.9.0` |\n| [warning](https://github.com/jeremyevans/ruby-warning) | `1.5.0` | `1.6.0` |\n| [cbor](http://cbor.io/) | `0.5.10.1` | `0.5.10.3` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.7` | `1.3.8` |\n| [csv](https://github.com/ruby/csv) | `3.3.5` | `3.3.6` |\n| [date](https://github.com/ruby/date) | `3.5.1` | `3.6.0` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [ffi-compiler](https://github.com/ffi/ffi-compiler) | `1.3.2` | `1.4.2` |\n| [gapic-common](https://github.com/googleapis/ruby-core-libraries) | `1.3.0` | `1.5.1` |\n| [google-apis-core](https://github.com/googleapis/google-api-ruby-client) | `1.0.2` | `1.3.1` |\n| [google-apis-iamcredentials_v1](https://github.com/googleapis/google-api-ruby-client) | `0.26.0` | `0.28.0` |\n| [google-apis-storage_v1](https://github.com/googleapis/google-api-ruby-client) | `0.61.0` | `0.69.0` |\n| [google-cloud-common](https://github.com/googleapis/common-protos-ruby) | `1.9.0` | `1.10.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-ruby) | `1.8.0` | `1.9.0` |\n| [google-cloud-env](https://github.com/googleapis/ruby-cloud-env) | `2.3.1` | `2.4.1` |\n| [google-cloud-errors](https://github.com/googleapis/google-cloud-ruby) | `1.6.0` | `1.7.0` |\n| [google-protobuf](https://github.com/protocolbuffers/protobuf) | `4.34.1` | `4.36.2` |\n| [googleapis-common-protos](https://github.com/googleapis/common-protos-ruby) | `1.9.0` | `1.10.0` |\n| [googleapis-common-protos-types](https://github.com/googleapis/common-protos-ruby) | `1.22.0` | `1.23.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.16.2` | `1.17.5` |\n| [grpc](https://github.com/google/grpc) | `1.80.0` | `1.84.0` |\n| [io-console](https://github.com/ruby/io-console) | `0.8.2` | `0.9.4` |\n| [json](https://github.com/ruby/json) | `2.21.1` | `2.21.2` |\n| [multi_json](https://github.com/sferik/multi_json) | `1.20.0` | `1.21.2` |\n| [net-http](https://github.com/ruby/net-http) | `0.9.1` | `0.10.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.6.4.1` | `0.6.8` |\n| [net-protocol](https://github.com/ruby/net-protocol) | `0.2.2` | `0.4.0` |\n| [net-smtp](https://github.com/ruby/net-smtp) | `0.5.1` | `0.5.2` |\n| [omniauth-oauth2](https://github.com/omniauth/omniauth-oauth2) | `1.8.0` | `1.9.0` |\n| [openssl](https://github.com/ruby/openssl) | `4.0.1` | `4.0.2` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [rack](https://github.com/rack/rack) | `3.2.6` | `3.2.7` |\n| [reline](https://github.com/ruby/reline) | `0.6.3` | `0.7.0` |\n| [representable](https://github.com/trailblazer/representable) | `3.2.0` | `3.3.1` |\n| [retriable](https://github.com/kamui/retriable) | `3.4.1` | `4.2.0` |\n| [signet](https://github.com/googleapis/signet) | `0.21.0` | `0.22.1` |\n| [tpm-key_attestation](https://github.com/cedarcode/tpm-key_attestation) | `0.14.1` | `0.14.2` |\n| [uri](https://github.com/ruby/uri) | `1.1.1` | `1.1.2` |\n| [version_gem](https://github.com/ruby-oauth/version_gem) | `1.1.14` | `1.1.15` |\n\nUpdates `acme-client` from 2.0.26 to 2.0.35\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/unixcharles/acme-client/blob/master/CHANGELOG.md\"\u003eacme-client's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.35\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose the RFC 8555 order \u003ccode\u003eerror\u003c/code\u003e field on \u003ccode\u003eResources::Order#error\u003c/code\u003e and add \u003ccode\u003eOrder#typed_error\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.34\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd badAttestationStatement error\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.33\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eAcme::Client::Problem\u003c/code\u003e for structured RFC 7807 / RFC 8555 ACME problem documents\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003eAcme::Client::Error#problem\u003c/code\u003e and problem field accessors while keeping \u003ccode\u003e#acme_error_body\u003c/code\u003e behavior\u003c/li\u003e\n\u003cli\u003eAdd typed error mappings for all currently registered IANA ACME error types and verify them against IANA's CSV registry\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.32\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003evalid_ip_address?\u003c/code\u003e method definition. Was mistakenly defined on Object instead of \u003ccode\u003eAcme::Client::CertificateRequest\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.31\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose Retry-After header on all\u003c/li\u003e\n\u003cli\u003eARI improvement\u003c/li\u003e\n\u003cli\u003eExpose full error message on Error#acme_error_body\u003c/li\u003e\n\u003cli\u003eExpose error subproblems (RFC7807) on Error#subproblems\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.30\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a default message to RateLimited error\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis fix avoid argument error on RateLimited object when stubbing without passing arguments.\u003c/p\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.29\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIP support to the CertificateRequest helper\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.28\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ca href=\"https://datatracker.ietf.org/doc/html/rfc8555/#section-6.6\"\u003eRetry-After\u003c/a\u003e accessible from RateLimited#retry_after exceptions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ccode\u003e2.0.27\u003c/code\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Renewal Information (ARI) (RFC 9773)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/a4328f15c3d3400bcfa714b799280d0d2365d047\"\u003e\u003ccode\u003ea4328f1\u003c/code\u003e\u003c/a\u003e bump to 2.0.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/63a0445c07c13a4f59dee874ffc467937bc3f08e\"\u003e\u003ccode\u003e63a0445\u003c/code\u003e\u003c/a\u003e Expose the order error field and add Order#typed_error (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/710ba1719e2f29ceee6c9a8766b340515abda5fe\"\u003e\u003ccode\u003e710ba17\u003c/code\u003e\u003c/a\u003e Bump actions/github-script from 7 to 9 (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/275\"\u003e#275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/cbadbf58e29ee68b2c5953963142fdb0b536c022\"\u003e\u003ccode\u003ecbadbf5\u003c/code\u003e\u003c/a\u003e Split IANA ACME error registry check into its own weekly job (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/44aed48d50e6ad9d8362d2df6a6a7ce287fe5097\"\u003e\u003ccode\u003e44aed48\u003c/code\u003e\u003c/a\u003e Bump to 2.0.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/abb3fbad062a6f10de2f9ac351d56c5f770bb6a7\"\u003e\u003ccode\u003eabb3fba\u003c/code\u003e\u003c/a\u003e Add support for badAttestationStatement error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/d78e23042a0f5a94c702ab12c4d5dfa27efec97d\"\u003e\u003ccode\u003ed78e230\u003c/code\u003e\u003c/a\u003e bump to 33\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/7e7b57279bcb7b3599051fd84e44a2deea85b245\"\u003e\u003ccode\u003e7e7b572\u003c/code\u003e\u003c/a\u003e Add structured ACME problem documents (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/bdd991ec25a6276f9cbe06532e7e7bfe40ae722f\"\u003e\u003ccode\u003ebdd991e\u003c/code\u003e\u003c/a\u003e Restore TruffleRuby on CI (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unixcharles/acme-client/commit/38427fc656810d7d25ce80918dbd5bb76c9a96ef\"\u003e\u003ccode\u003e38427fc\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/unixcharles/acme-client/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/unixcharles/acme-client/compare/v2.0.26...v2.0.35\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-kdf` from 0.3.1 to 1.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/argon2-kdf/blob/master/CHANGELOG.md\"\u003eargon2-kdf's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.0.0 (2026-04-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/0badcb535f98fa10acf692137e3cf8601c1d6f01\"\u003e\u003ccode\u003e0badcb5\u003c/code\u003e\u003c/a\u003e Version bump to 1.0.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/d7047beb07a83a79b8bf1ae4bc96561865036a8f\"\u003e\u003ccode\u003ed7047be\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/60117d75d6232cdf43fcb7f58d17dc3d8d8caa87\"\u003e\u003ccode\u003e60117d7\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/db0c97ad6806430ef1af3e7fcaf34537d1c1b288\"\u003e\u003ccode\u003edb0c97a\u003c/code\u003e\u003c/a\u003e Updated CI [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/9dd49b0133e590f039fe4dfa0dbde9e623491411\"\u003e\u003ccode\u003e9dd49b0\u003c/code\u003e\u003c/a\u003e Added ruby_memcheck\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/d109bd19c07c7a1df5fb8b4dd9d7bd3c7c1e67d5\"\u003e\u003ccode\u003ed109bd1\u003c/code\u003e\u003c/a\u003e Fixed warning [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/2697dd8cfefacdbd059d01866a0467e4a8c8fb65\"\u003e\u003ccode\u003e2697dd8\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/argon2-kdf/commit/83e5ce84edb6a88b484187cae45fa8bea10de972\"\u003e\u003ccode\u003e83e5ce8\u003c/code\u003e\u003c/a\u003e Updated test setup [skip ci]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ankane/argon2-kdf/compare/v0.3.1...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cgi` from 0.5.1 to 0.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/cgi/releases\"\u003ecgi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove readme copy/paste + update URLs to HTTPS by \u003ca href=\"https://github.com/tas50\"\u003e\u003ccode\u003e@​tas50\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/101\"\u003eruby/cgi#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd changelog URI to cgi.gemspec metadata by \u003ca href=\"https://github.com/phallstrom\"\u003e\u003ccode\u003e@​phallstrom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/105\"\u003eruby/cgi#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix escape_html/h aliases to use C extension instead of pure Ruby fallback by \u003ca href=\"https://github.com/ianks\"\u003e\u003ccode\u003e@​ianks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/110\"\u003eruby/cgi#110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] More on CGI.new by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/95\"\u003eruby/cgi#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Doc for CGI#http_header by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/98\"\u003eruby/cgi#98\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Doc for accept_charset and accept_charset= by \u003ca href=\"https://github.com/BurdetteLamar\"\u003e\u003ccode\u003e@​BurdetteLamar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/97\"\u003eruby/cgi#97\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[DOC] Fix examples in accept_charset and http_header docs by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/125\"\u003eruby/cgi#125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd 'digest' option by \u003ca href=\"https://github.com/nobu\"\u003e\u003ccode\u003e@​nobu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/62\"\u003eruby/cgi#62\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle POST without Content-Length by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/126\"\u003eruby/cgi#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CGI.unescapeHTML CompatibilityError in the pure-Ruby fallback by \u003ca href=\"https://github.com/hsbt\"\u003e\u003ccode\u003e@​hsbt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/127\"\u003eruby/cgi#127\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tas50\"\u003e\u003ccode\u003e@​tas50\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/101\"\u003eruby/cgi#101\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/phallstrom\"\u003e\u003ccode\u003e@​phallstrom\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/105\"\u003eruby/cgi#105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ianks\"\u003e\u003ccode\u003e@​ianks\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/cgi/pull/110\"\u003eruby/cgi#110\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\"\u003ehttps://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/bbfac8902e82e5419a7bdb62512aa68bfafa7979\"\u003e\u003ccode\u003ebbfac89\u003c/code\u003e\u003c/a\u003e v0.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/09970b06d3286108a885a459c5fe078565b960fb\"\u003e\u003ccode\u003e09970b0\u003c/code\u003e\u003c/a\u003e Fix unescapeHTML CompatibilityError in pure-Ruby fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/23f26a07db459197a4b7d2212f3c53f17e246e22\"\u003e\u003ccode\u003e23f26a0\u003c/code\u003e\u003c/a\u003e Handle POST without Content-Length\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/2af5afaaf1de421659db4d9b107dc47fd461d6aa\"\u003e\u003ccode\u003e2af5afa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elength\u003c/code\u003e option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/128feb5fb6eed9ae490123897f7661518199a301\"\u003e\u003ccode\u003e128feb5\u003c/code\u003e\u003c/a\u003e Improve tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/bff5bbb109f0f5de5aa70bf6681de693ed96f7fe\"\u003e\u003ccode\u003ebff5bbb\u003c/code\u003e\u003c/a\u003e Allow digest classes as the digest for store path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/5e979c426dce2b71b310d520198b502ee4162012\"\u003e\u003ccode\u003e5e979c4\u003c/code\u003e\u003c/a\u003e Add 'digest' option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/240684037a340f92f404ed7f020243e1562a098b\"\u003e\u003ccode\u003e2406840\u003c/code\u003e\u003c/a\u003e Separate each test methods\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/3ef24099e573a22d104bff4ad9ff4fa2126ee769\"\u003e\u003ccode\u003e3ef2409\u003c/code\u003e\u003c/a\u003e [DOC] Fix wording in CGI#http_header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/cgi/commit/3ca9d12c818f86e342e78c14387bc1e76fa24c69\"\u003e\u003ccode\u003e3ca9d12\u003c/code\u003e\u003c/a\u003e [DOC] Fix accept_charset default value in examples\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/cgi/compare/v0.5.1...v0.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-cloudresourcemanager_v3` from 0.61.0 to 0.65.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-cloudresourcemanager_v3/CHANGELOG.md\"\u003egoogle-apis-cloudresourcemanager_v3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.65.0 (2026-09-20)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260909\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.64.0 (2026-09-06)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260820\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.63.0 (2026-08-09)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260715\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.62.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-iam_v1` from 0.85.0 to 0.92.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-iam_v1/CHANGELOG.md\"\u003egoogle-apis-iam_v1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.92.0 (2026-09-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260918\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.91.0 (2026-09-06)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260828\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.90.0 (2026-08-16)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260807\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.89.0 (2026-08-02)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260724\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.88.0 (2026-07-12)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260702\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.87.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.86.0 (2026-04-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20260320\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-compute-v1` from 3.5.0 to 3.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/baa4c47b4c785ade23d1051f702e2451c2264f9a\"\u003e\u003ccode\u003ebaa4c47\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36601\"\u003e#36601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/e3742443b16b54b93fee0aa3585d6079f99b8505\"\u003e\u003ccode\u003ee374244\u003c/code\u003e\u003c/a\u003e ci: configure tagPullRequestNumber and disable separate-pull-requests (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36600\"\u003e#36600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/13e3ae1b4bd445b852bfe40978ebdd7f7f26fbdd\"\u003e\u003ccode\u003e13e3ae1\u003c/code\u003e\u003c/a\u003e feat(google-cloud-backupdr-v1beta): onboard google/cloud/backupdr/v1beta API ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/859439933019bcb37e10b3338015d5a511d8211e\"\u003e\u003ccode\u003e8594399\u003c/code\u003e\u003c/a\u003e feat!: Replace google-cloud-automl-v1beta1 with a tombstone (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36594\"\u003e#36594\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/54c339be271aad1876ff294fa1e73379f8d946c2\"\u003e\u003ccode\u003e54c339b\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-app_topology 0.1.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36595\"\u003e#36595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/2247ffcbca28fd475b1e2130f1dc6f949630cab5\"\u003e\u003ccode\u003e2247ffc\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-app_topology-v1 0.1.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36596\"\u003e#36596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/8627c2db130a02231370d024271b146fd13c6324\"\u003e\u003ccode\u003e8627c2d\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-api_gateway-v1 2.7.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36578\"\u003e#36578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/98bcaf7288409e33b9441da6749506ebfa568f2e\"\u003e\u003ccode\u003e98bcaf7\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-kms-v1 1.16.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36587\"\u003e#36587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/57146d7431230a7f003ae4f0c8701f5163af5e26\"\u003e\u003ccode\u003e57146d7\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-automl 3.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36597\"\u003e#36597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/16052e08f7d1de238ba21fb29f90181fd78a9818\"\u003e\u003ccode\u003e16052e0\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-automl-v1 2.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36599\"\u003e#36599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/compare/google-cloud-compute-v1/v3.5.0...google-cloud-compute-v1/v3.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-storage` from 1.59.0 to 1.62.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/releases\"\u003egoogle-cloud-storage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-storage-control-v2: v1.14.1\u003c/h2\u003e\n\u003ch3\u003e1.14.1 (2026-09-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eprepare release google-cloud-storage-control-v2 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/36470\"\u003e#36470\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/0e9b4eaaa83a714ed7742a031c065488a59cddd8\"\u003e\u003ccode\u003e0e9b4ea\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-storage 1.62.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34613\"\u003e#34613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/fc533428a0a3ce0db77af4859c9c9762e120e22a\"\u003e\u003ccode\u003efc53342\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-maps-isochrones (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34700\"\u003e#34700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/0c3666380c5d2e984a3b8538b0a9b143ad339525\"\u003e\u003ccode\u003e0c36663\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-cloud-network_security-v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34693\"\u003e#34693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/dabbf4397c5fb90b9066c1d276ed0f5f2b2c9a38\"\u003e\u003ccode\u003edabbf43\u003c/code\u003e\u003c/a\u003e feat: Initial generation of google-maps-isochrones-v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34698\"\u003e#34698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/c7afd52849b6d661aa79febad251f64a57445203\"\u003e\u003ccode\u003ec7afd52\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-ces-v1beta 0.3.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34697\"\u003e#34697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/50d9c3526fffc735830709b3c105605acb27f6aa\"\u003e\u003ccode\u003e50d9c35\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-ces-v1 0.2.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34696\"\u003e#34696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/1f3c42951c4662cf688cd9e58cf48af4490d18df\"\u003e\u003ccode\u003e1f3c429\u003c/code\u003e\u003c/a\u003e fix: add routing annotations to BidiRunSession in v1 and v1beta (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34694\"\u003e#34694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/22d231d60a30114bef769d9ec673971308bf3b59\"\u003e\u003ccode\u003e22d231d\u003c/code\u003e\u003c/a\u003e fix: add routing annotations to BidiRunSession in v1 and v1beta (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34695\"\u003e#34695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/b9f72ad0c8c4ec26bbe9d2312f170772606aea5b\"\u003e\u003ccode\u003eb9f72ad\u003c/code\u003e\u003c/a\u003e chore(main): release stackdriver 1.0.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34663\"\u003e#34663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-ruby/commit/9f5a31edc77fc5d1d711cea409088fd0066e4c87\"\u003e\u003ccode\u003e9f5a31e\u003c/code\u003e\u003c/a\u003e chore(main): release google-cloud-datastore-v1 1.8.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-ruby/issues/34684\"\u003e#34684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-ruby/compare/google-cloud-storage/v1.59.0...google-cloud-storage/v1.62.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `committee` from 5.6.1 to 5.6.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/interagent/committee/blob/master/CHANGELOG.md\"\u003ecommittee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.4 - 2026-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebump actions/checkout from 6 to 7 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/475\"\u003e#475\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eimprove code quality \u003ca href=\"https://redirect.github.com/interagent/committee/issues/476\"\u003e#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd strict_response_content_type to ResponseValidation middleware \u003ca href=\"https://redirect.github.com/interagent/committee/issues/478\"\u003e#478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump sqlite3 in example to clear security warning \u003ca href=\"https://redirect.github.com/interagent/committee/issues/480\"\u003e#480\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eexpose matched operation on SchemaValidator::OpenAPI3 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/479\"\u003e#479\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eprevent path params from masking invalid query params \u003ca href=\"https://redirect.github.com/interagent/committee/issues/481\"\u003e#481\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate openapi 2 responses against status-specific schemas \u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreserve one-shot response bodies after validation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evalidate each test request against in's operation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.3 - 2026-04-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eclarify OpenAPI 3 coerce_form_params behavior \u003ca href=\"https://redirect.github.com/interagent/committee/issues/471\"\u003e#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport bracket-style OpenAPI 3 query params \u003ca href=\"https://redirect.github.com/interagent/committee/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eincrement Minitest assertion count in assert_schema_conform methods \u003ca href=\"https://redirect.github.com/interagent/committee/issues/473\"\u003e#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix parsing of +json response content types \u003ca href=\"https://redirect.github.com/interagent/committee/issues/474\"\u003e#474\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.2 - 2026-03-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate .ruby-version to latest tested \u003ca href=\"https://redirect.github.com/interagent/committee/issues/456\"\u003e#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump actions/checkout from 5 to 6 \u003ca href=\"https://redirect.github.com/interagent/committee/issues/457\"\u003e#457\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd ydah to contributors list \u003ca href=\"https://redirect.github.com/interagent/committee/issues/458\"\u003e#458\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd coerce_response_values option to enable type coercion in response validation \u003ca href=\"https://redirect.github.com/interagent/committee/issues/461\"\u003e#461\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove response validation logic from middleware to validator classes \u003ca href=\"https://redirect.github.com/interagent/committee/issues/462\"\u003e#462\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd OpenAPI 3 parameter deserialization with style/explode support \u003ca href=\"https://redirect.github.com/interagent/committee/issues/460\"\u003e#460\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd more straightforward options by type \u003ca href=\"https://redirect.github.com/interagent/committee/issues/463\"\u003e#463\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd strict mode support for query parameters \u003ca href=\"https://redirect.github.com/interagent/committee/issues/464\"\u003e#464\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd except option for testing error responses \u003ca href=\"https://redirect.github.com/interagent/committee/issues/465\"\u003e#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix OpenAPI schema cache collision by including schema_path in cache key \u003ca href=\"https://redirect.github.com/interagent/committee/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix OpenAPI 3 path coercion to respect coerce_path_params independently of query coercion \u003ca href=\"https://redirect.github.com/interagent/committee/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix prefix matching to respect path segment boundaries \u003ca href=\"https://redirect.github.com/interagent/committee/issues/468\"\u003e#468\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Ruby 4.0 to CI configuration and update README for supported versions \u003ca href=\"https://redirect.github.com/interagent/committee/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/c2e259be56068d451c318c3a9fe61b581720af8a\"\u003e\u003ccode\u003ec2e259b\u003c/code\u003e\u003c/a\u003e v5.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/f96455391a91a4c9e423e902318ffc37c06c4deb\"\u003e\u003ccode\u003ef964553\u003c/code\u003e\u003c/a\u003e Validate each test request against its operation (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/485\"\u003e#485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/b3935afb95fda807f4d7f9e63be276ee6ed1be22\"\u003e\u003ccode\u003eb3935af\u003c/code\u003e\u003c/a\u003e Preserve one-shot response bodies after validation (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/483\"\u003e#483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/736a7fe24b4b901b66d3458cc61049eda6a62927\"\u003e\u003ccode\u003e736a7fe\u003c/code\u003e\u003c/a\u003e Validate OpenAPI 2 responses against status-specific schemas (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/482\"\u003e#482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/3c61e6688273d6abe7c292171722b880d99a0c7a\"\u003e\u003ccode\u003e3c61e66\u003c/code\u003e\u003c/a\u003e Prevent path parameters from masking invalid query parameters (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/481\"\u003e#481\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/0d6d1117fcc941667dbf7d4af388a75e47c3937e\"\u003e\u003ccode\u003e0d6d111\u003c/code\u003e\u003c/a\u003e Expose the matched operation on SchemaValidator::OpenAPI3 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/663268faf68ca53a4bfaba3d961acebfd9071877\"\u003e\u003ccode\u003e663268f\u003c/code\u003e\u003c/a\u003e bump sqlite3 in example to non-vulnerable one to clear security warning (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/480\"\u003e#480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/0c79077e734f9cf839f7596302ad22302d4306c7\"\u003e\u003ccode\u003e0c79077\u003c/code\u003e\u003c/a\u003e Add strict_response_content_type option to ResponseValidation middleware (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/77a8251d379321c938c673fc7d810048d2a562af\"\u003e\u003ccode\u003e77a8251\u003c/code\u003e\u003c/a\u003e Improve code quality: auto-pr/docstrings-1782127864 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/interagent/committee/commit/5412a705a34533a394585c6cfd5632b223b2c8dd\"\u003e\u003ccode\u003e5412a70\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 6 to 7 (\u003ca href=\"https://redirect.github.com/interagent/committee/issues/475\"\u003e#475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/interagent/committee/compare/v5.6.1...v5.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `excon` from 1.6.0 to 1.7.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/excon/excon/blob/master/changelog.txt\"\u003eexcon's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.7.2 2026-09-28\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdated bundled certs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.7.1 2026-08-28\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdated bundled certs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.7.0 2026-08-06\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eupdate bundled certs\u003c/li\u003e\n\u003cli\u003euse weak keys for socket cache to improve memory usage\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/920d5e8a3d880f28cff338466349fb7ee27f29e8\"\u003e\u003ccode\u003e920d5e8\u003c/code\u003e\u003c/a\u003e v1.7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/ee10e3617affa55af3457338ccae12180ab3d76f\"\u003e\u003ccode\u003eee10e36\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/b6ca2879961d04f8de520c4b740db6aca4fdb48a\"\u003e\u003ccode\u003eb6ca287\u003c/code\u003e\u003c/a\u003e v1.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/18ec428add3913d0b5da459decbd46e24e17f797\"\u003e\u003ccode\u003e18ec428\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/ac022b6417d71b783b1f64cdb577968cb015e44f\"\u003e\u003ccode\u003eac022b6\u003c/code\u003e\u003c/a\u003e v1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/e39ec876fb9102d02a9cc5813282b96052e6d2a2\"\u003e\u003ccode\u003ee39ec87\u003c/code\u003e\u003c/a\u003e Use weak keys for thread-safe socket caches (\u003ca href=\"https://redirect.github.com/excon/excon/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/excon/excon/commit/bde847ab9ea6505c3d3d9cbc2aaaa8465de3a13f\"\u003e\u003ccode\u003ebde847a\u003c/code\u003e\u003c/a\u003e update bundled certs\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/excon/excon/compare/v1.6.0...v1.7.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jwt` from 3.2.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jwt/ruby-jwt/blob/main/CHANGELOG.md\"\u003ejwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/tree/v3.3.0\"\u003ev3.3.0\u003c/a\u003e (2026-09-11)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/compare/v3.2.0...v3.3.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFeatures:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAllow a leeway to be given for the \u003ccode\u003eiat\u003c/code\u003e claim verification \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/747\"\u003e#747\u003c/a\u003e - (\u003ca href=\"https://github.com/denis1011101\"\u003e\u003ccode\u003e@​denis1011101\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevamp the error hierarchy under a new \u003ccode\u003eJWT::Error\u003c/code\u003e base class; signing failures now consistently raise \u003ccode\u003eJWT::EncodeError\u003c/code\u003e, see \u003ca href=\"https://github.com/jwt/ruby-jwt/blob/main/UPGRADING.md\"\u003ehttps://github.com/jwt/ruby-jwt/blob/main/UPGRADING.md\u003c/a\u003e \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/722\"\u003e#722\u003c/a\u003e (\u003ca href=\"https://github.com/anakinj\"\u003e\u003ccode\u003e@​anakinj\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFixes and enhancements:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor \u003ccode\u003eJWT::JWK::Set#initialize\u003c/code\u003e so each construction path is a named method \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/758\"\u003e#758\u003c/a\u003e (\u003ca href=\"https://github.com/anakinj\"\u003e\u003ccode\u003e@​anakinj\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix rejection of unknown algorithms from JWKs for RFC compliance and pquip \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eStyle/DirectiveScope\u003c/code\u003e RuboCop offense failing the build \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eJWT::JWK::Set\u003c/code\u003e sharing its key collection with the set it was copied from \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/pull/751\"\u003e#751\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReset the decoded payload and verification state in \u003ccode\u003eJWT::EncodedToken#encoded_payload=\u003c/code\u003e \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eJWT::Token#detach_payload!\u003c/code\u003e not invalidating an already rendered token \u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/748\"\u003e#748\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/ccf24892fec805ecd64fec820fd4d2825b5a1267\"\u003e\u003ccode\u003eccf2489\u003c/code\u003e\u003c/a\u003e Prepare the v3.3.0 release (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/6cdacc377788b658a7a80609dc62ea0a8d717d14\"\u003e\u003ccode\u003e6cdacc3\u003c/code\u003e\u003c/a\u003e Enforce parentheses on method calls with arguments (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/4a576f887542aaaa5dd73d483e11003bc46f2230\"\u003e\u003ccode\u003e4a576f8\u003c/code\u003e\u003c/a\u003e Declutter jwt_spec.rb (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/7ddcb0a38b5565bbdb229b77e3a7fc561bea084b\"\u003e\u003ccode\u003e7ddcb0a\u003c/code\u003e\u003c/a\u003e Fix the RSA-PSS guard skipping the whole jwt_spec file (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/7cede0c704c79e42272df8768b57cd6ec338d99e\"\u003e\u003ccode\u003e7cede0c\u003c/code\u003e\u003c/a\u003e Refactor JWT::JWK::Set#initialize (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/6ab1be795200609385d99fff32cb4d57a36d764b\"\u003e\u003ccode\u003e6ab1be7\u003c/code\u003e\u003c/a\u003e Revamp error hierarchy (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/41fbf31aa33ff363b447bd69d4f006cfaac4a062\"\u003e\u003ccode\u003e41fbf31\u003c/code\u003e\u003c/a\u003e Invalidate the rendered token when detaching the payload (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/757\"\u003e#757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/d8e231d5719a0fa9dbd9bf6cbb0778d926391c17\"\u003e\u003ccode\u003ed8e231d\u003c/code\u003e\u003c/a\u003e Reset verification state when replacing the encoded payload (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/c25fb5e2c0c03c4452bae9654c33a0549d3fc10e\"\u003e\u003ccode\u003ec25fb5e\u003c/code\u003e\u003c/a\u003e Fix JWT::JWK::Set sharing its key collection when copied (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jwt/ruby-jwt/commit/bec0ffdf187ad7bf337d542890328e33cf0ad583\"\u003e\u003ccode\u003ebec0ffd\u003c/code\u003e\u003c/a\u003e Isolate gem builds from release credentials (\u003ca href=\"https://redirect.github.com/jwt/ruby-jwt/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jwt/ruby-jwt/compare/v3.2.0...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mail` from 2.9.0 to 2.9.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mikel/mail/releases\"\u003email's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Ruby 3.4 to CI matrix in GitHub Actions workflow by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1653\"\u003emikel/mail#1653\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove decoding of Q- and B-encoded strings by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1664\"\u003emikel/mail#1664\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBump to 2.9.1 by \u003ca href=\"https://github.com/radar\"\u003e\u003ccode\u003e@​radar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1665\"\u003emikel/mail#1665\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mikel/mail/pull/1653\"\u003emikel/mail#1653\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mikel/mail/compare/2.9.0...2.9.1\"\u003ehttps://github.com/mikel/mail/compare/2.9.0...2.9.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/d645d7b5b7d03218b0bc8971ef041c991a63f5f7\"\u003e\u003ccode\u003ed645d7b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1665\"\u003e#1665\u003c/a\u003e from mikel/tag-291\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/5c863ed0489571e7572669018739dc47ed1f9189\"\u003e\u003ccode\u003e5c863ed\u003c/code\u003e\u003c/a\u003e Bump to 2.9.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/14915fa4c5f30ade18f3745ecc6d5d141a48104d\"\u003e\u003ccode\u003e14915fa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1664\"\u003e#1664\u003c/a\u003e from mikel/sec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/4eab5623419079d6b972f063f16b536c02ecee62\"\u003e\u003ccode\u003e4eab562\u003c/code\u003e\u003c/a\u003e Potential fix for pull request finding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/f9d59c2e447af42e2c3dec5a56b1bb25c7292859\"\u003e\u003ccode\u003ef9d59c2\u003c/code\u003e\u003c/a\u003e Improve decoding of Q- and B-encoded strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/f98fb653956d246661394b1e98cf6e77eb8dd0a0\"\u003e\u003ccode\u003ef98fb65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mikel/mail/issues/1653\"\u003e#1653\u003c/a\u003e from ydah/add-ci-matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mikel/mail/commit/d9081000b1c3e9a07f2b58e0e6c0b8f360bc8c8f\"\u003e\u003ccode\u003ed908100\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI matrix in GitHub Actions workflow\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mikel/mail/compare/2.9.0...2.9.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `net-ssh` from 7.3.2 to 7.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/net-ssh/net-ssh/blob/master/CHANGES.txt\"\u003enet-ssh's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 7.3.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport .pub file as IdentityFile to filter/prioritize agent keys (1Password SSH agent use case) \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/942\"\u003e#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix cert signing regression when using a .pub companion file without an agent \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix unreadable .pub IdentityFile silently skipped instead of raising \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple UserKnownHostsFile entries (space-separated, matching ssh_config(5)) \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop mutating ENV['HOME'] at require time \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/997\"\u003e#997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ED25519 loader with frozen string literals \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/995\"\u003e#995\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/b991e88de99f278d4779dc0a2b1ac4e3da9d07d3\"\u003e\u003ccode\u003eb991e88\u003c/code\u003e\u003c/a\u003e Update CHANGES.txt for 7.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/e7c4afca130151d313b7055de3327b196d87616a\"\u003e\u003ccode\u003ee7c4afc\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/96986680545bf940c7a22194d895da9fb13e4877\"\u003e\u003ccode\u003e9698668\u003c/code\u003e\u003c/a\u003e Fix rubocop offenses introduced by \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/951\"\u003e#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/4be06b027ae65aaf084e30a9c7bb424677fdef67\"\u003e\u003ccode\u003e4be06b0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/1006\"\u003e#1006\u003c/a\u003e from net-ssh/pub-key-identity\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/81b2e895c43bdc1ae756d9cd7c31e7a6bfe4da26\"\u003e\u003ccode\u003e81b2e89\u003c/code\u003e\u003c/a\u003e Fix rubocop offenses: hash brace spacing and empty block comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/60490dfb14640952acb948a1b07711c9833ec19b\"\u003e\u003ccode\u003e60490df\u003c/code\u003e\u003c/a\u003e Fix cert signing regression and unreadable .pub file error handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/11243f28e52fa89a0e689d517cc45c3274bfc5ba\"\u003e\u003ccode\u003e11243f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/951\"\u003e#951\u003c/a\u003e from usiegj00/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/491660fe59e43cb9e36180f9162f6fa87db6a117\"\u003e\u003ccode\u003e491660f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/979\"\u003e#979\u003c/a\u003e from andrewdotn/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/6f01d9078da92e8765ae111a0482633ea19d0b71\"\u003e\u003ccode\u003e6f01d90\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/995\"\u003e#995\u003c/a\u003e from G-Rath/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/net-ssh/net-ssh/commit/1aa9ea6bab9c01da137832395eba395340e6ab87\"\u003e\u003ccode\u003e1aa9ea6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/net-ssh/net-ssh/issues/997\"\u003e#997\u003c/a\u003e from net-ssh/fix/remove-env-home-mutation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/net-ssh/net-ssh/compare/v7.3.2...v7.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.3\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify caller-supplied ID tokens against Google's published signing keys before trusting them. An ID token sent alongside a direct \u003ccode\u003eaccess_token\u003c/code\u003e callback was previously decoded without checking its signature, so \u003ccode\u003eextra.id_info\u003c/code\u003e and \u003ccode\u003eextra.id_token\u003c/code\u003e could be populated from a forged token. \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003einfo\u003c/code\u003e were never affected, as they come from the userinfo endpoint. A caller-supplied ID token genuinely issued by Google for the same user and a trusted client continues to be accepted after verification.\u003c/li\u003e\n\u003cli\u003eRequire a caller-supplied ID token to describe the same user as the access token it was sent with, by comparing the token's \u003ccode\u003esub\u003c/code\u003e against the userinfo subject. A verified signature only proves Google issued the token, not that it belongs to the person the access token identifies, so without this a genuine ID token for one user could be paired with an access token for another and leave \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003eextra.id_info\u003c/code\u003e describing different people. The \u003ccode\u003eat_hash\u003c/code\u003e claim is checked first as a fast path, and this subject check settles the cases \u003ccode\u003eat_hash\u003c/code\u003e cannot: tokens that omit the claim, and tokens whose \u003ccode\u003eat_hash\u003c/code\u003e is stale because the client refreshed its access token after sign-in. This check runs even when \u003ccode\u003eskip_info\u003c/code\u003e is set, as that option trims the auth hash rather than waiving verification.\u003c/li\u003e\n\u003cli\u003eThe bundled example app no longer disables TLS certificate verification. Anyone who copied that line into an application should remove it: it turns off certificate checking for every Faraday-based request in the process, not just the ones this gem makes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereset_jwks_cache!\u003c/code\u003e for clearing the cached Google signing keys between tests.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecached_jwks\u003c/code\u003e, the class-level fetch-and-cache primitive behind it, which takes the fetch itself as a block.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJWKS_URL\u003c/code\u003e, \u003ccode\u003eJWKS_CACHE_TTL\u003c/code\u003e, and \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e constants, and a \u003ccode\u003eJwksUnavailable\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eAn upper bound of \u003ccode\u003e\u0026lt; 4\u003c/code\u003e on the \u003ccode\u003ejwt\u003c/code\u003e dependency. This is precautionary rather than a response to a released version: it keeps a future major release from being picked up before it has been verified against this strategy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe fallback that placed the opaque access token in \u003ccode\u003eextra.id_token\u003c/code\u003e when no ID token was present. \u003ccode\u003eextra.id_token\u003c/code\u003e is now absent in that case rather than holding a value that was never an ID token. This was only reachable with \u003ccode\u003eskip_jwt\u003c/code\u003e set; without it the fallback raised instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore every credential field a caller supplies in a direct access-token callback apart from the access token itself and a verified ID token. \u003ccode\u003erefresh_token\u003c/code\u003e and token expiry in particular cannot be verified, so they are no longer carried through.\u003c/li\u003e\n\u003cli\u003eAvoid decoding opaque access tokens as JWTs when no ID token is available.\u003c/li\u003e\n\u003cli\u003eFail with a normal authentication failure when a callback carries no usable credential, such as an ID token with no access token, a JSON body that is not an object, or an unparseable body. Previously these raised a \u003ccode\u003eNoMethodError\u003c/code\u003e or \u003ccode\u003eTypeError\u003c/code\u003e that OmniAuth turned into a failure whose message was the raw Ruby error, so applications received an unstable \u003ccode\u003emessage\u003c/code\u003e parameter such as \u003ccode\u003eundefined method 'expired?'\u003c/code\u003e instead of \u003ccode\u003einvalid_credentials\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eServe the cached signing keys when Google's key endpoint is briefly unreachable, and back off before refetching, rather than retrying on every request, including when nothing is cached yet.\u003c/li\u003e\n\u003cli\u003eReject a signing key response that is not an object with a \u003ccode\u003ekeys\u003c/code\u003e array, rather than passing it on to be interpreted as some other kind of key.\u003c/li\u003e\n\u003cli\u003eCap how often an ID token naming an unrecognised key can force a key refresh, so it cannot be used to drive unbounded outbound requests while holding the shared cache lock. Key rotation still resolves within \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejwt_leeway\u003c/code\u003e now also applies when verifying caller-supplied ID tokens, matching how it already behaved for the \u003ccode\u003eextra\u003c/code\u003e block.\u003c/li\u003e\n\u003cli\u003eSupport non-rewindable JSON request bodies under Rack 3.\u003c/li\u003e\n\u003cli\u003eAccept ID tokens issued to any configured \u003ccode\u003eauthorized_client_ids\u003c/code\u003e, matching the audiences already accepted for access tokens.\u003c/li\u003e\n\u003cli\u003eReuse successfully verified ID token claims when building \u003ccode\u003eextra\u003c/code\u003e, so each ID token is decoded and validated only once per request.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.3 - 2026-08-31\u003c/h2\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVerify caller-supplied ID tokens against Google's published signing keys before trusting them. An ID token sent alongside a direct \u003ccode\u003eaccess_token\u003c/code\u003e callback was previously decoded without checking its signature, so \u003ccode\u003eextra.id_info\u003c/code\u003e and \u003ccode\u003eextra.id_token\u003c/code\u003e could be populated from a forged token. \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003einfo\u003c/code\u003e were never affected, as they come from the userinfo endpoint. A caller-supplied ID token genuinely issued by Google for the same user and a trusted client continues to be accepted after verification.\u003c/li\u003e\n\u003cli\u003eRequire a caller-supplied ID token to describe the same user as the access token it was sent with, by comparing the token's \u003ccode\u003esub\u003c/code\u003e against the userinfo subject. A verified signature only proves Google issued the token, not that it belongs to the person the access token identifies, so without this a genuine ID token for one user could be paired with an access token for another and leave \u003ccode\u003euid\u003c/code\u003e and \u003ccode\u003eextra.id_info\u003c/code\u003e describing different people. The \u003ccode\u003eat_hash\u003c/code\u003e claim is checked first as a fast path, and this subject check settles the cases \u003ccode\u003eat_hash\u003c/code\u003e cannot: tokens that omit the claim, and tokens whose \u003ccode\u003eat_hash\u003c/code\u003e is stale because the client refreshed its access token after sign-in. This check runs even when \u003ccode\u003eskip_info\u003c/code\u003e is set, as that option trims the auth hash rather than waiving verification.\u003c/li\u003e\n\u003cli\u003eThe bundled example app no longer disables TLS certificate verification. Anyone who copied that line into an application should remove it: it turns off certificate checking for every Faraday-based request in the process, not just the ones this gem makes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ereset_jwks_cache!\u003c/code\u003e for clearing the cached Google signing keys between tests.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecached_jwks\u003c/code\u003e, the class-level fetch-and-cache primitive behind it, which takes the fetch itself as a block.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eJWKS_URL\u003c/code\u003e, \u003ccode\u003eJWKS_CACHE_TTL\u003c/code\u003e, and \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e constants, and a \u003ccode\u003eJwksUnavailable\u003c/code\u003e error.\u003c/li\u003e\n\u003cli\u003eAn upper bound of \u003ccode\u003e\u0026lt; 4\u003c/code\u003e on the \u003ccode\u003ejwt\u003c/code\u003e dependency. This is precautionary rather than a response to a released version: it keeps a future major release from being picked up before it has been verified against this strategy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe fallback that placed the opaque access token in \u003ccode\u003eextra.id_token\u003c/code\u003e when no ID token was present. \u003ccode\u003eextra.id_token\u003c/code\u003e is now absent in that case rather than holding a value that was never an ID token. This was only reachable with \u003ccode\u003eskip_jwt\u003c/code\u003e set; without it the fallback raised instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore every credential field a caller supplies in a direct access-token callback apart from the access token itself and a verified ID token. \u003ccode\u003erefresh_token\u003c/code\u003e and token expiry in particular cannot be verified, so they are no longer carried through.\u003c/li\u003e\n\u003cli\u003eAvoid decoding opaque access tokens as JWTs when no ID token is available.\u003c/li\u003e\n\u003cli\u003eFail with a normal authentication failure when a callback carries no usable credential, such as an ID token with no access token, a JSON body that is not an object, or an unparseable body. Previously these raised a \u003ccode\u003eNoMethodError\u003c/code\u003e or \u003ccode\u003eTypeError\u003c/code\u003e that OmniAuth turned into a failure whose message was the raw Ruby error, so applications received an unstable \u003ccode\u003emessage\u003c/code\u003e parameter such as \u003ccode\u003eundefined method 'expired?'\u003c/code\u003e instead of \u003ccode\u003einvalid_credentials\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eServe the cached signing keys when Google's key endpoint is briefly unreachable, and back off before refetching, rather than retrying on every request, including when nothing is cached yet.\u003c/li\u003e\n\u003cli\u003eReject a signing key response that is not an object with a \u003ccode\u003ekeys\u003c/code\u003e array, rather than passing it on to be interpreted as some other kind of key.\u003c/li\u003e\n\u003cli\u003eCap how often an ID token naming an unrecognised key can force a key refresh, so it cannot be used to drive unbounded outbound requests while holding the shared cache lock. Key rotation still resolves within \u003ccode\u003eJWKS_RETRY_INTERVAL\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ejwt_leeway\u003c/code\u003e now also applies when verifying caller-supplied ID tokens, matching how it already behaved for the \u003ccode\u003eextra\u003c/code\u003e block.\u003c/li\u003e\n\u003cli\u003eSupport non-rewindable JSON request bodies under Rack 3.\u003c/li\u003e\n\u003cli\u003eAccept ID tokens issued to any configured \u003ccode\u003eauthorized_client_ids\u003c/code\u003e, matching the audiences already accepted for access tokens.\u003c/li\u003e\n\u003cli\u003eReuse successfully verified ID token claims when building \u003ccode\u003eextra\u003c/code\u003e, so each ID token is decoded and validated only once per request.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c2fa91f53806725f3afd459b6e58e3020f1e3a0a\"\u003e\u003ccode\u003ec2fa91f\u003c/code\u003e\u003c/a\u003e Fix token info cache keying and log injection, and require core ID token claims\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c6af73e631b0201913bff13e5276784c06797d63\"\u003e\u003ccode\u003ec6af73e\u003c/code\u003e\u003c/a\u003e Reduce redundant JWKS cache timestamp calculations\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/778c9906f3b46f488ca935293b30cc6dc0a45c43\"\u003e\u003ccode\u003e778c990\u003c/code\u003e\u003c/a\u003e Tiny README.md correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/eae8feb8994c3ebbcfacc90e83020966cbbc7cb2\"\u003e\u003ccode\u003eeae8feb\u003c/code\u003e\u003c/a\u003e Clarify CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ef303e62e40a0ed3e979b938cd03d428ea227747\"\u003e\u003ccode\u003eef303e6\u003c/code\u003e\u003c/a\u003e Accept ID tokens from authorized client IDs and fix Ruby 2.5 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e5be50ed4b98980bbe449bbd5f165e04477012e5\"\u003e\u003ccode\u003ee5be50e\u003c/code\u003e\u003c/a\u003e Verify caller-supplied ID tokens against Google's signing keys and bind them ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/650aab99f7611e14d1414aeeac99fb769448408b\"\u003e\u003ccode\u003e650aab9\u003c/code\u003e\u003c/a\u003e Update example to show AJAX payloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/0b87f3f2c7a8f9438ae8c676fcdfbdaacc87f66d\"\u003e\u003ccode\u003e0b87f3f\u003c/code\u003e\u003c/a\u003e Fix ID token spoofing in direct access-token callbacks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/41796b62f47192e2b51b46525132932248992347\"\u003e\u003ccode\u003e41796b6\u003c/code\u003e\u003c/a\u003e specify that jwt must be less than version 4 (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/55590719512739ee8300b9a8c7a2ab7a4651145e\"\u003e\u003ccode\u003e5559071\u003c/code\u003e\u003c/a\u003e Better CHANGELOG.md\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rake` from 13.3.1 to 13.4.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/503b8ec593c51289c09cc2a69a34af99d6198c6a\"\u003e\u003ccode\u003e503b8ec\u003c/code\u003e\u003c/a\u003e v13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/46038e780e5982c34a745229b91909871c18357c\"\u003e\u003ccode\u003e46038e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/723\"\u003e#723\u003c/a\u003e from ruby/fix/testopts-preserve-existing-value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/604a3d9873f75442b6209b6f9d7938a5358a9fe1\"\u003e\u003ccode\u003e604a3d9\u003c/code\u003e\u003c/a\u003e Isolate TESTOPTS env in TestRakeTestTask setup/teardown\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/5886caa127339046cedef67713ef990a7eb7710c\"\u003e\u003ccode\u003e5886caa\u003c/code\u003e\u003c/a\u003e Preserve ENV[\u0026quot;TESTOPTS\u0026quot;] when verbose is enabled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/92193acc3674fd1567bab0bcf3f5df37f141b47e\"\u003e\u003ccode\u003e92193ac\u003c/code\u003e\u003c/a\u003e v13.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b74be0be2421b7719ebde57420ff738479ada341\"\u003e\u003ccode\u003eb74be0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/721\"\u003e#721\u003c/a\u003e from ruby/fix/add-options-to-gemspec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/829f66d86cd28810fdd3dcbc4fff8feabf554d73\"\u003e\u003ccode\u003e829f66d\u003c/code\u003e\u003c/a\u003e Add lib/rake/options.rb to gemspec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/2d55bc4a8b97db9f0c085df59d338077885f6f1a\"\u003e\u003ccode\u003e2d55bc4\u003c/code\u003e\u003c/a\u003e v13.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/14150701d48a16400b820977f6d64a7f0604d9f0\"\u003e\u003ccode\u003e1415070\u003c/code\u003e\u003c/a\u003e Exclude dependabot updates from release note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rake/commit/b3dc948e2689487b37052288097a6666e001effb\"\u003e\u003ccode\u003eb3dc948\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby/rake/issues/713\"\u003e#713\u003c/a\u003e from pvdb/simplify_standard_system_dir\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/rake/compare/v13.3.1...v13.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `roda` from 3.103.0 to 3.108.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jeremyevans/roda/blob/master/CHANGELOG\"\u003eroda's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 3.108.0 (2026-09-14)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eMake invalid_request_body r.POST exception handling reraise RodaErrors (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake host_routing plugin downcase hostnames before storage and comparison (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake :extension hash matcher in path_matchers plugin require . before extension (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd params_capturing_restore plugin to have params_capturing work with pass and break plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAlways set Vary response header if considering Accept request header in type_routing plugin (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eHave r.last_modified in caching plugin check If-Unmodified-Since before If-None-Match and If-Modified-Since (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not have r.on_segment in optimized_segment_matchers match empty segment (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not have r.on with String class matcher and default symbol matcher match empty segment (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake pass plugin work with hash_branches and hash_paths plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake params_capturing plugin override a provided parameter named captures (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeprecate the :clear_session csrf_failure option value in the route_csrf and sec_fetch_site_csrf plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake segment matching with convertor not consume remaining_path if convertor returns false/nil (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake etag in the caching plugin return a 412 response if an If-Match header is submitted and weak option is used (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake r.redirect without arguments use / if path starts with // (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake run_append_slash with :use_redirects option not redirect if path starts with // (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake hash matcher reset remaining path and captures on failure (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake pass and break plugins work with optimized_{string,segment}_matchers plugins (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake render method options have greater priority than options set via set_view_options (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not allow rendering templates outside an allowed_paths directory but having an allowed path as a prefix (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDo not add the :views directory as an allowed path if it isn't a directory (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport json_parser :content_type_regexp plugin option, warn if not provided (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd r.query to all_verbs plugin on Rack 3.3+ (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSupport :exempt_request_methods option for route_csrf plugin, to use an allow list approach (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd csrf_request_method to route_csrf plugin, to handle case where REQUEST_METHOD has been modified (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/f13bb6bc4cb24a1397f38fbd3558c602503f92e3\"\u003e\u003ccode\u003ef13bb6b\u003c/code\u003e\u003c/a\u003e Bump version to 3.108.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/523005c52efd9e6662d7466a481ee4162abe2c40\"\u003e\u003ccode\u003e523005c\u003c/code\u003e\u003c/a\u003e Switch one of recommended :content_type_regexp examples to be case insensitive\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/3bd72155990c5a8fedb550fc636d3df458b30798\"\u003e\u003ccode\u003e3bd7215\u003c/code\u003e\u003c/a\u003e Fix JRUBY_VERSION check in sessions spec to handle JRuby 10+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/aed701cf7d800c171e86904e785da53c3364de8e\"\u003e\u003ccode\u003eaed701c\u003c/code\u003e\u003c/a\u003e Explain why you may want to use public plugin instead of static\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/d5790231193b627bc10d5a89489fdf8430b8e0b3\"\u003e\u003ccode\u003ed579023\u003c/code\u003e\u003c/a\u003e Make invalid_request_body r.POST exception handling reraise RodaErrors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/d7b9422e64aa488d79638c181b8e31de9b49e01e\"\u003e\u003ccode\u003ed7b9422\u003c/code\u003e\u003c/a\u003e Make host_routing plugin downcase hostnames before storage and comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/440159345ed4a6162c40bd5e18378d7def1c35bb\"\u003e\u003ccode\u003e4401593\u003c/code\u003e\u003c/a\u003e Make :extension hash matcher in path_matchers plugin require . before extension\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/6399979a05f2b7f291304287c9a056ec95801c04\"\u003e\u003ccode\u003e6399979\u003c/code\u003e\u003c/a\u003e Remove unneeded branch in hmac_paths plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/33054425935327a05b29d6cda86d37acd9a365ab\"\u003e\u003ccode\u003e3305442\u003c/code\u003e\u003c/a\u003e Add params_capturing_restore plugin to have params_capturing work with pass a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeremyevans/roda/commit/acd56dfeedb6721788cacfa0e343c07022cfb716\"\u003e\u003ccode\u003eacd56df\u003c/code\u003e\u003c/a\u003e Always set Vary response header if considering Accept request header in type_...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jeremyevans/roda/compare/3.103.0...3.108.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rodauth` from 2.43.0 to 2.48.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jeremyevans/rodauth/blob/master/CHANGELOG\"\u003erodauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e=== 2.48.0 (2026-09-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd logged_in_fallback_to_http_basic_auth? configuration method to http_basic_auth feature (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake account_from_session return account loaded via http_basic_auth feature (jeremyevans)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password_grace_period to not unset last_password_entry_session_key if new p...\n\n_Description has been truncated_","html_url":"https://github.com/Layerrail/layerrail/pull/231","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Layerrail%2Flayerrail/issues/231","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/231/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-14T13:18:36.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5848537219","node_id":"PR_kwDOHFdNx88AAAABIZbb-A","number":2418,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-14T13:18:36.000Z","updated_at":"2026-10-14T13:25:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/govuk-forms/forms-runner/pull/2418","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/govuk-forms%2Fforms-runner/issues/2418","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/2418/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-11T04:21:01.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5797909442","node_id":"PR_kwDOQ8VhiM8AAAABHxZxDQ","number":58,"state":"closed","title":"Bump the bundler group with 8 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-25T04:14:34.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-11T04:21:01.000Z","updated_at":"2026-10-25T04:14:38.000Z","time_to_close":1209213,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":8,"packages":[{"name":"rails","old_version":"8.1.3.1","new_version":"8.1.4","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"solid_cable","old_version":"4.0.2","new_version":"4.1.0","repository_url":"https://github.com/rails/solid_cable"},{"name":"bootsnap","old_version":"1.25.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"},{"name":"selenium-webdriver","old_version":"4.47.0","new_version":"4.50.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov","old_version":"1.1.1","new_version":"1.3.2","repository_url":"https://github.com/simplecov-ruby/simplecov"},{"name":"twilio-ruby","old_version":"7.11.1","new_version":"7.11.3","repository_url":"https://github.com/twilio/twilio-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rails](https://github.com/rails/rails) | `8.1.3.1` | `8.1.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.3` | `1.7.0` |\n| [solid_cable](https://github.com/rails/solid_cable) | `4.0.2` | `4.1.0` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.25.0` | `1.26.0` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.26` | `0.1.27` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.47.0` | `4.50.0` |\n| [simplecov](https://github.com/simplecov-ruby/simplecov) | `1.1.1` | `1.3.2` |\n| [twilio-ruby](https://github.com/twilio/twilio-ruby) | `7.11.1` | `7.11.3` |\n\nUpdates `rails` from 8.1.3.1 to 8.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix the debug error page rendering for \u003ccode\u003eSyntaxError\u003c/code\u003es with multi-line messages.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eMarco Roth\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eActiveSupport::JSON.decode\u003c/code\u003e compatible with the upcoming \u003ccode\u003ejson\u003c/code\u003e 3.0 gem.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eEarlopain\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing for sizes above a terabyte by supporting\npetabyte, exabyte, and zettabyte storage units.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eRange#sole\u003c/code\u003e raising \u003ccode\u003eNoMethodError\u003c/code\u003e when the enumerable core extension\nisn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::Cache::FileStore\u003c/code\u003e raising \u003ccode\u003eNameError\u003c/code\u003e for \u003ccode\u003eFileUtils\u003c/code\u003e\nwhen \u003ccode\u003efileutils\u003c/code\u003e isn't already loaded.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eEnumerable#in_order_of\u003c/code\u003e with \u003ccode\u003efilter: true\u003c/code\u003e dropping \u003ccode\u003enil\u003c/code\u003e elements\nexplicitly named in the series.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eKeep \u003ccode\u003eHashWithIndifferentAccess#filter\u003c/code\u003e returning a \u003ccode\u003eHashWithIndifferentAccess\u003c/code\u003e\ninstead of a plain \u003ccode\u003eHash\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003enumber_to_human\u003c/code\u003e and \u003ccode\u003enumber_to_human_size\u003c/code\u003e crashing when \u003ccode\u003e:precision\u003c/code\u003e is \u003ccode\u003enil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::InheritableOptions#to_h\u003c/code\u003e to recursively flatten nested\n\u003ccode\u003eInheritableOptions\u003c/code\u003e parents.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndrew Novoselac\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eActiveSupport::StructuredEventSubscriber.debug_only\u003c/code\u003e leaking debug-only\nmethods across subscriber subclasses.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eKenta Ishizaki\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/c3466ea00d7121798e3aa3144ffdf7174b81d8cb\"\u003e\u003ccode\u003ec3466ea\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/334dc3ee8630f7cdf53dd7dff1527055dbe188a7\"\u003e\u003ccode\u003e334dc3e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58854\"\u003e#58854\u003c/a\u003e from carlosdanielpohlod/strict-locals-ascii-only-body\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8df6693715ebdfe2f7f0875aeda574d91917bb20\"\u003e\u003ccode\u003e8df6693\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58827\"\u003e#58827\u003c/a\u003e from rails/backport-alias-fallback-8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2ed2c88f77b53577cd004447c027ea76a0162bc5\"\u003e\u003ccode\u003e2ed2c88\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eread_attribute_for_validation\u003c/code\u003e instead of aliasing \u003ccode\u003esend\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/26161451181b007b99a81b1500dbfa94055f70de\"\u003e\u003ccode\u003e2616145\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/56705\"\u003e#56705\u003c/a\u003e from p8/activemodel/fix-read-attr-for-serialization...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/20abac3cb2c92969da8b06bd1b17bd45243986b4\"\u003e\u003ccode\u003e20abac3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58817\"\u003e#58817\u003c/a\u003e from yahonda/fix-alias-fallback-to-object-in-attrib...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/2670772ab9c21a437b412d7c9a4425213bafb4fa\"\u003e\u003ccode\u003e2670772\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58733\"\u003e#58733\u003c/a\u003e from kwestein/create-or-find-by-deadlock\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8236300ace9b7498bf99841f48f49b7f6be804d2\"\u003e\u003ccode\u003e8236300\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58806\"\u003e#58806\u003c/a\u003e from Shopify/hm-wnqzpryypymkrxtn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e6288a8817379ddf74b1a791b9c59f6922db49ff\"\u003e\u003ccode\u003ee6288a8\u003c/code\u003e\u003c/a\u003e Update CHANGELOGs for 8-1-stable backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/44a7fd4ca847755e92c0be14230f096e2b23f326\"\u003e\u003ccode\u003e44a7fd4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/rails/issues/58799\"\u003e#58799\u003c/a\u003e from e-akashsaini/fix-tuple-where-key-corrupting-at...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3.1...v8.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `solid_cable` from 4.0.2 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/solid_cable/releases\"\u003esolid_cable's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.1.0\u003c/h2\u003e\n\u003ch1\u003eRails World Edition\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUse the channel hash directly instead of rehashing every poll by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/85\"\u003erails/solid_cable#85\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMemoize cable configuration by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/86\"\u003erails/solid_cable#86\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBatch writes together by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/87\"\u003erails/solid_cable#87\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd encryption support by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/88\"\u003erails/solid_cable#88\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate bench app and loadtest script by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/90\"\u003erails/solid_cable#90\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBring autotrimming inline with solid cache by \u003ca href=\"https://github.com/npezza93\"\u003e\u003ccode\u003e@​npezza93\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/solid_cable/pull/89\"\u003erails/solid_cable#89\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ehttps://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/1e4217e51db6e116318804776d30c3f4c2b776a4\"\u003e\u003ccode\u003e1e4217e\u003c/code\u003e\u003c/a\u003e disable autotrimming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/6bb0bd443cff4f3a92d3531291a9e0954146ec8a\"\u003e\u003ccode\u003e6bb0bd4\u003c/code\u003e\u003c/a\u003e bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/7e97e8ca670205595080ef9cfa5c2a3e37142892\"\u003e\u003ccode\u003e7e97e8c\u003c/code\u003e\u003c/a\u003e pass around the actual message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/79b9839947d305a6776d13fed1178b9e33bdf338\"\u003e\u003ccode\u003e79b9839\u003c/code\u003e\u003c/a\u003e Pass the actual messages to broadcast_batch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/41b1059ad6ead2f9d187b7c6ce1994e228488c34\"\u003e\u003ccode\u003e41b1059\u003c/code\u003e\u003c/a\u003e better naming\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/56f41fe9e8fefe8cbc19ddb321088f9dd77c6991\"\u003e\u003ccode\u003e56f41fe\u003c/code\u003e\u003c/a\u003e skip duping the current_channels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/0585967705b47a3f5a0b3fef9da970fd68f68707\"\u003e\u003ccode\u003e0585967\u003c/code\u003e\u003c/a\u003e actually compress encrypted messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/a1d8b2731668beacbca8c757714f7c97ea10cc52\"\u003e\u003ccode\u003ea1d8b27\u003c/code\u003e\u003c/a\u003e Remove channel index since we use channel_hash now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/c75d007d1b60c837e49852b56387e6b0a323dc69\"\u003e\u003ccode\u003ec75d007\u003c/code\u003e\u003c/a\u003e Bring autotrimming inline with solid cache (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/89\"\u003e#89\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/solid_cable/commit/2dea601929ec9f27cd8752338ccab7eaa73b1dd5\"\u003e\u003ccode\u003e2dea601\u003c/code\u003e\u003c/a\u003e Update bench app and loadtest script (\u003ca href=\"https://redirect.github.com/rails/solid_cable/issues/90\"\u003e#90\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/solid_cable/compare/v4.0.2...v4.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.25.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.25.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `selenium-webdriver` from 4.47.0 to 4.50.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/releases\"\u003eselenium-webdriver's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSelenium 4.50.0\u003c/h2\u003e\n\u003ch2\u003eDetailed Changelogs by Component\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/java/CHANGELOG\"\u003eJava\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/py/CHANGES\"\u003ePython\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/dotnet/CHANGELOG\"\u003eDotNet\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eRuby\u003c/a\u003e\u003c/strong\u003e     |    \u003c!-- raw HTML omitted --\u003e \u003cstrong\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/javascript/selenium-webdriver/CHANGES.md\"\u003eJavaScript\u003c/a\u003e\u003c/strong\u003e\n\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[dotnet] [bidi] Add image size to capture screenshots by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18016\"\u003eSeleniumHQ/selenium#18016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] only need to run nightly Grid release after production release by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18013\"\u003eSeleniumHQ/selenium#18013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] merge the release PR automatically once required checks pass by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18018\"\u003eSeleniumHQ/selenium#18018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] move Selenium Manager publishing into sm-snapshot.yml so releases no longer skip it by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18017\"\u003eSeleniumHQ/selenium#18017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Network async/event API proposal by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17685\"\u003eSeleniumHQ/selenium#17685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[adr] Behavioral contract for the low-level WebDriver BiDi layer by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17786\"\u003eSeleniumHQ/selenium#17786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] remove deprecated methods from the HttpClient interface by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17993\"\u003eSeleniumHQ/selenium#17993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] cover BiDi key, wheel, release, and setFiles scenarios in the Input spec by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18022\"\u003eSeleniumHQ/selenium#18022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] replace the blanket remote BiDi test suite with an opt-in list by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18023\"\u003eSeleniumHQ/selenium#18023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] always use the latest Selenium Manager code when needed for tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18024\"\u003eSeleniumHQ/selenium#18024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] cleanup for ruff b904 raise from  by \u003ca href=\"https://github.com/iampopovich\"\u003e\u003ccode\u003e@​iampopovich\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18030\"\u003eSeleniumHQ/selenium#18030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py]: Apply ClientConfig \u003ccode\u003euser_agent\u003c/code\u003e and \u003ccode\u003eextra_headers\u003c/code\u003e per connection by \u003ca href=\"https://github.com/navin772\"\u003e\u003ccode\u003e@​navin772\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17944\"\u003eSeleniumHQ/selenium#17944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add bazel flag to support cross-compiling all Selenium Manager binaries from Linux or Mac by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18029\"\u003eSeleniumHQ/selenium#18029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] render WebSocket debug log lines lazily by \u003ca href=\"https://github.com/ikraamg\"\u003e\u003ccode\u003e@​ikraamg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18033\"\u003eSeleniumHQ/selenium#18033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rb] Implement driver methods for installing and uninstalling web extensions via BiDi by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17879\"\u003eSeleniumHQ/selenium#17879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Parse each BiDi command response only once by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18011\"\u003eSeleniumHQ/selenium#18011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run the requirements lock check on RBE with a platform-agnostic lock by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18039\"\u003eSeleniumHQ/selenium#18039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Support DestinationFolder optional arg in StartScreencast by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18042\"\u003eSeleniumHQ/selenium#18042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Add Emulation.SetTextLayoutModeOverride command by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18043\"\u003eSeleniumHQ/selenium#18043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] use RBE to prepare and build the artifacts for releases by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18041\"\u003eSeleniumHQ/selenium#18041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] move complete GitHub Actions test suite to nightly and run only high value smoke tests for PRs by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18040\"\u003eSeleniumHQ/selenium#18040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type BaseOptions.set_capability parameters by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18027\"\u003eSeleniumHQ/selenium#18027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] Use one HttpClient.Factory inside one RemoteWebDriver instance by \u003ca href=\"https://github.com/joerg1985\"\u003e\u003ccode\u003e@​joerg1985\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18038\"\u003eSeleniumHQ/selenium#18038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Ignore exec.log recursively by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18049\"\u003eSeleniumHQ/selenium#18049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] fetch the changelog history since the previous release tag instead of computing a depth by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18044\"\u003eSeleniumHQ/selenium#18044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] prefix workflow names by how they run so the Actions sidebar groups them by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18053\"\u003eSeleniumHQ/selenium#18053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] run grid specific tests on windows during scheduled tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18054\"\u003eSeleniumHQ/selenium#18054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate webref_cddl.bzl from the BiDi spec's external specifications list by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18055\"\u003eSeleniumHQ/selenium#18055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] update BiDi schema generation to include external spec methods missing due to upstream spec omissions by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18057\"\u003eSeleniumHQ/selenium#18057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] Type WebElement.get_attribute name by \u003ca href=\"https://github.com/adamtheturtle\"\u003e\u003ccode\u003e@​adamtheturtle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18028\"\u003eSeleniumHQ/selenium#18028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18060\"\u003eSeleniumHQ/selenium#18060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [build] Include package license/notice files by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18048\"\u003eSeleniumHQ/selenium#18048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet][java][js][py][rb] remove deprecated Firefox profile extension and cert methods by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18066\"\u003eSeleniumHQ/selenium#18066\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[java] resolve exceptions from the W3C state in ErrorHandler by \u003ca href=\"https://github.com/yashp676\"\u003e\u003ccode\u003e@​yashp676\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18059\"\u003eSeleniumHQ/selenium#18059\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] Fix the two CDDL repin fallouts breaking every Python target by \u003ca href=\"https://github.com/AutomatedTester\"\u003e\u003ccode\u003e@​AutomatedTester\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18068\"\u003eSeleniumHQ/selenium#18068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[dotnet] [bidi] Eliminate BiDi context on hot path by \u003ca href=\"https://github.com/nvborisenko\"\u003e\u003ccode\u003e@​nvborisenko\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18069\"\u003eSeleniumHQ/selenium#18069\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[py] [dotnet] [java] declare Firefox default preferences in each binding by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18070\"\u003eSeleniumHQ/selenium#18070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18071\"\u003eSeleniumHQ/selenium#18071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[rust] fix flaky tests by \u003ca href=\"https://github.com/titusfortner\"\u003e\u003ccode\u003e@​titusfortner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/18073\"\u003eSeleniumHQ/selenium#18073\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[js] Align BiDi Generator with the low-level contract by \u003ca href=\"https://github.com/pujagani\"\u003e\u003ccode\u003e@​pujagani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/pull/17973\"\u003eSeleniumHQ/selenium#17973\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES\"\u003eselenium-webdriver's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.50.0 (2026-09-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v152, v153, v154\u003c/li\u003e\n\u003cli\u003erender WebSocket debug log lines lazily (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18033\"\u003e#18033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement driver methods for installing and uninstalling web extensions via BiDi (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17879\"\u003e#17879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18046\"\u003e#18046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] replace the BiDi KNOWN_INCOMPLETE allowlist with spec-shaped CDDL overlays (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18057\"\u003e#18057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] generate the BiDi schema vendor section from Mozilla's Firefox CDDL (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18060\"\u003e#18060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove deprecated Firefox profile extension and cert methods (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18066\"\u003e#18066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.49.0 (2026-09-09)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v151, v152, v153\u003c/li\u003e\n\u003cli\u003ederive BiDi field names and enum value types in the schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17966\"\u003e#17966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17990\"\u003e#17990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] ship prebuilt Selenium Manager Linux arm64 binary in all bindings (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17999\"\u003e#17999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18005\"\u003e#18005\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.48.0 (2026-08-27)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSupport CDP versions: v150, v151, v152\u003c/li\u003e\n\u003cli\u003eadd low-level BiDi protocol integration specs (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17878\"\u003e#17878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17910\"\u003e#17910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix silent hang on oversized WebSocket frames (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17655\"\u003e#17655\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ealways reject a missing required inbound BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17936\"\u003e#17936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eaccept a whole-valued float for an integer BiDi field (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17939\"\u003e#17939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereject an inbound BiDi scalar outside its union's declared arms (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/17947\"\u003e#17947\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/ca2a96694916c818db1c388b7a1c14cf3380c098\"\u003e\u003ccode\u003eca2a966\u003c/code\u003e\u003c/a\u003e [build] Prepare for release of selenium-4.50.0 (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18105\"\u003e#18105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27ef65761b92bc943e5aae804459421727d1cf78\"\u003e\u003ccode\u003e27ef657\u003c/code\u003e\u003c/a\u003e [rb] add bidi tests for recent spec updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/76febdc715a93c9256eb2ac35624c406bc2159b7\"\u003e\u003ccode\u003e76febdc\u003c/code\u003e\u003c/a\u003e [build] Automated Dependency Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18082\"\u003e#18082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6f841aa1f8f3b73f10af195b9f2b8734dd7b81f7\"\u003e\u003ccode\u003e6f841aa\u003c/code\u003e\u003c/a\u003e [build] Automated CDDL Spec Update (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18075\"\u003e#18075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/52a288e07fe4e5540bbf67c7d42cbaf66a1c61de\"\u003e\u003ccode\u003e52a288e\u003c/code\u003e\u003c/a\u003e [build] Automated Browser Version Update (major) with CDP (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18067\"\u003e#18067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/acd7ce82c602b9926ae65f1b1fb50af75b09f084\"\u003e\u003ccode\u003eacd7ce8\u003c/code\u003e\u003c/a\u003e [rb] remove stale Windows pending guard from Firefox signed directory addon test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/748477d0fcb941b8c7d50fc5d7d2ffb69ffe1c96\"\u003e\u003ccode\u003e748477d\u003c/code\u003e\u003c/a\u003e [rb] remove dead headless, browser and remote config_settings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/6ff202add86b748bb87e75655b1cdc0aa2d144a2\"\u003e\u003ccode\u003e6ff202a\u003c/code\u003e\u003c/a\u003e [rb] fix flaky test by not applying timeouts to the setup navigation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/27c86e2055d5ecffdfaf6df1a15442b36fa6fcbb\"\u003e\u003ccode\u003e27c86e2\u003c/code\u003e\u003c/a\u003e [build] add support for Mozilla's Commands fragment in the BiDi schema (\u003ca href=\"https://redirect.github.com/SeleniumHQ/selenium/issues/18071\"\u003e#18071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SeleniumHQ/selenium/commit/59b28c40ef9c92d95abc6312f36da23cc9f444ef\"\u003e\u003ccode\u003e59b28c4\u003c/code\u003e\u003c/a\u003e [rb] fix nightly web extension spec failures on Safari and Windows\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/SeleniumHQ/selenium/compare/selenium-4.47.0...selenium-4.50.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `simplecov` from 1.1.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/releases\"\u003esimplecov's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.1\u003c/h2\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.3.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob that matches a template warns and leaves it out instead of simulating it. Simulation classifies lines as Ruby and parses for branches, so a swept-in template appeared with a comment counted as a missed line, an \u003ccode\u003e#id\u003c/code\u003e tag counted as never relevant, and no branches at all. The warning names the templates and points at \u003ccode\u003ecover_views\u003c/code\u003e, which compiles them and measures the real thing.\u003c/li\u003e\n\u003cli\u003eThe deprecated \u003ccode\u003e# :nocov:\u003c/code\u003e toggle works in a template's own comment syntax (\u003ccode\u003e\u0026lt;%# :nocov: %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# :nocov:\u003c/code\u003e, \u003ccode\u003e/ :nocov:\u003c/code\u003e) and emits its deprecation warning there. The matcher read raw lines and needed the line to begin with \u003ccode\u003e#\u003c/code\u003e, so those forms were silently ignored while the Ruby-comment form inside an ERB code tag happened to work. The matcher now reads the same extracted Ruby the directives do.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods. The filter keeps a Coverage entry only when Prism finds a matching construct in the static source, which for a template measured with \u003ccode\u003ecover_views\u003c/code\u003e meant parsing ERB, Haml, or Slim as Ruby. That usually fails and the entry is kept, but a template whose text happens to parse (a Haml or Slim \u003ccode\u003e#id\u003c/code\u003e tag reads as a Ruby comment, and so does an ERB text line starting with \u003ccode\u003e#\u003c/code\u003e) yielded a confident wrong parse, and the template's own conditionals vanished from branch coverage. Templates now skip the parse, since everything a template reports is eval-generated by construction and the filter has nothing to distinguish there.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eSimpleCov 1.2 adds change-focused coverage, per-test attribution, production coverage, and a substantially expanded\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/simplecov-ruby/simplecov/blob/main/CHANGELOG.md\"\u003esimplecov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.3.2 (2026-09-30)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe HTML report is generated again on Rails 8.1.4 when a \u003ccode\u003eparallelize_teardown\u003c/code\u003e hook calls \u003ccode\u003eSimpleCov.result\u003c/code\u003e. Rails 8.1.4 runs those hooks in the parent process as well as in each worker, and collecting the result there stops \u003ccode\u003eCoverage\u003c/code\u003e, which the exit handler took as a sign that nothing was left to report. The exit handler now formats a result that was already collected. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1308\"\u003esimplecov-ruby/simplecov#1308\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.1 (2026-09-24)\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e compiles templates on Rails main again. Rails removed \u003ccode\u003eActionView::Template.registered_template_handler\u003c/code\u003e; the lookup reads \u003ccode\u003eActionView::Template::Handlers.template_handlers\u003c/code\u003e and still skips an extension with no handler. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1300\"\u003esimplecov-ruby/simplecov#1300\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003erequire \u0026quot;simplecov\u0026quot;\u003c/code\u003e works again on JRuby on Windows, where 1.3.0 raised \u003ccode\u003eLoadError: Could not open library '.../libprism.dll'\u003c/code\u003e. Prism's FFI backend cannot open its native library there, and 1.3.0 required Prism as soon as SimpleCov loaded. Prism now loads only when branch or method coverage needs the static extractor, which a line-only run never does. Where it cannot load at all, the extractor falls back to empty branch and method tables for never-loaded files, as it did before 1.3.0. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1299\"\u003esimplecov-ruby/simplecov#1299\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov affected --run\u003c/code\u003e works on JRuby on Windows, where it crashed with \u003ccode\u003eNoMethodError\u003c/code\u003e because \u003ccode\u003eProcess.wait2\u003c/code\u003e answers no status there. On that platform the runner starts through \u003ccode\u003eKernel#system\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov serve\u003c/code\u003e refuses a symlink that points outside the report on JRuby on Windows too. JRuby's \u003ccode\u003eFile.realpath\u003c/code\u003e follows no symlinks there, so \u003ccode\u003eserve\u003c/code\u003e would have served the file the link pointed to, and \u003ccode\u003esimplecov clean\u003c/code\u003e and the \u003ccode\u003ecoverage.json\u003c/code\u003e lookup compared paths that were never resolved. On JRuby the CLI now resolves paths through the JDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.3.0 (2026-09-12)\u003c/h1\u003e\n\u003cp\u003eSimpleCov 1.3 raises the minimum Ruby to 3.3, brings the coverage directives to ERB, Haml, and Slim templates,\nteaches \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e to annotate CI hosts natively, and settles what the report says\nabout files and groups that hold nothing.\u003c/p\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 3.2 is no longer supported. The minimum is Ruby 3.3, which bundles Prism, so the static coverage extractor stops probing for it and the emulation of 3.2's constant folding is gone.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax or as Ruby comments on a code line.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--annotate KIND\u003c/code\u003e turns \u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e into inline CI annotations for GitHub, GitLab, reviewdog, Azure, TeamCity, and Buildkite, so one CI step can both annotate and gate.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of padding it at 100%, and the \u003ccode\u003erails\u003c/code\u003e profile declares its groups alphabetically.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecover_views\u003c/code\u003e is the only way to measure a template now: a \u003ccode\u003ecover\u003c/code\u003e glob that matches one warns and leaves it out, and \u003ccode\u003eignore: :eval_generated\u003c/code\u003e no longer drops a template's real branches and methods.\u003c/li\u003e\n\u003cli\u003eA file with nothing to cover reports the same percentage in the file list as it does in the source view.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe minimum supported Ruby is now 3.3. Ruby 3.2 reached end of life in March 2026. JRuby 10 remains supported for line coverage.\u003c/li\u003e\n\u003cli\u003eA group that matched no files disappears from the HTML report, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file, and a per-group minimum on it passes silently rather than complaining that the group does not exist.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile's group tabs come out in alphabetical order, so an existing project's tabs move.\u003c/li\u003e\n\u003cli\u003eA never-loaded file with no branches or methods reports 100% for those criteria rather than 0%, so a per-file branch or method threshold that failed such a file passes now. A file the report carries no branch or method table for at all is still unaccounted for, and keeps its 0%.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ecover\u003c/code\u003e glob matching \u003ccode\u003e.erb\u003c/code\u003e, \u003ccode\u003e.haml\u003c/code\u003e, or \u003ccode\u003e.slim\u003c/code\u003e warns and drops those files from the report. Measure templates with \u003ccode\u003ecover_views\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ecoverage.json\u003c/code\u003e stays at schema 1.3, unchanged by this release.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Ruby 3.2. The minimum supported Ruby is now 3.3 (\u003ccode\u003erequired_ruby_version \u0026gt;= 3.3\u003c/code\u003e), with JRuby 10 still supported and TruffleRuby exercised only by the nightly unstable build. Prism is bundled with every supported Ruby, so the static coverage extractor stops probing for it: \u003ccode\u003eStaticCoverageExtractor.available?\u003c/code\u003e and the empty-hash fallbacks for its absence are gone. So is the emulation of Ruby 3.2's constant folding, where parentheses were transparent for every literal and a folded dead arm's branches survived in the branch table.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e# simplecov:disable\u003c/code\u003e and \u003ccode\u003e# simplecov:enable\u003c/code\u003e work inside ERB, Haml, and Slim templates measured with \u003ccode\u003ecover_views\u003c/code\u003e, in each language's own comment syntax (\u003ccode\u003e\u0026lt;%# simplecov:disable %\u0026gt;\u003c/code\u003e, \u003ccode\u003e-# simplecov:disable\u003c/code\u003e, \u003ccode\u003e/ simplecov:disable\u003c/code\u003e) or as Ruby comments on a code line. A template's directives were never found before: the comment scan tokenizes a file as Ruby, and in ERB \u003ccode\u003e%\u0026gt;\u003c/code\u003e opens a percent literal that swallowed every comment after the template's first tag, while Haml and Slim comments are not Ruby comments at all and a Slim \u003ccode\u003e- # simplecov:disable\u003c/code\u003e line even read as an inline directive that disabled only itself. The scan now reads only the Ruby a template holds, at the template's own lines, so a Devise app can disable the \u003ccode\u003econfirmable\u003c/code\u003e link it never renders instead of carrying it as uncovered. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1295\"\u003esimplecov-ruby/simplecov#1295\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eGroups that match no files are omitted from the report instead of appearing as 100% covered with nothing in them. Formatters, \u003ccode\u003ecoverage.json\u003c/code\u003e, and the history file all skip them, so the \u003ccode\u003erails\u003c/code\u003e profile's \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, and \u003ccode\u003eViews\u003c/code\u003e tabs no longer pad the HTML report of an app without those directories, and a project can declare a group per directory it might have (\u003ccode\u003eDir[\u0026quot;app/*\u0026quot;].each { |dir| group File.basename(dir).capitalize, dir }\u003c/code\u003e) without checking each one for Ruby files first. A \u003ccode\u003eminimum_coverage_by_group\u003c/code\u003e threshold on a group that matched nothing passes silently, as it did when the empty group reported 100%, rather than complaining that the group does not exist. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1293\"\u003esimplecov-ruby/simplecov#1293\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003erails\u003c/code\u003e profile declares its groups in alphabetical order: \u003ccode\u003eChannels\u003c/code\u003e, \u003ccode\u003eControllers\u003c/code\u003e, \u003ccode\u003eHelpers\u003c/code\u003e, \u003ccode\u003eJobs\u003c/code\u003e, \u003ccode\u003eLibraries\u003c/code\u003e, \u003ccode\u003eMailers\u003c/code\u003e, \u003ccode\u003eModels\u003c/code\u003e, \u003ccode\u003eViews\u003c/code\u003e. Group tabs render in declaration order, so the report of a Rails app lists them that way instead of in the order they accumulated over the years. Nothing else about the groups changes, and a project that declares its own groups is unaffected.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esimplecov patch\u003c/code\u003e and \u003ccode\u003esimplecov uncovered\u003c/code\u003e annotate CI hosts natively. \u003ccode\u003e--annotate KIND\u003c/code\u003e on both commands turns the answer into inline annotations in the host's own channel, one per contiguous missed range with project-relative paths (\u003ccode\u003epatch\u003c/code\u003e adds one per uncovered touched branch or method when the report measured them): \u003ccode\u003egithub\u003c/code\u003e emits \u003ccode\u003e::warning\u003c/code\u003e workflow commands, \u003ccode\u003egitlab\u003c/code\u003e a Code Quality report for the \u003ccode\u003ecodequality\u003c/code\u003e artifact, \u003ccode\u003erdjson\u003c/code\u003e reviewdog's Diagnostic Format for any host reviewdog posts to, \u003ccode\u003eazure\u003c/code\u003e \u003ccode\u003e##vso[task.logissue]\u003c/code\u003e logging commands, \u003ccode\u003eteamcity\u003c/code\u003e code inspection service messages, and \u003ccode\u003ebuildkite\u003c/code\u003e the Markdown body for \u003ccode\u003ebuildkite-agent annotate\u003c/code\u003e. \u003ccode\u003euncovered\u003c/code\u003e previously offered only \u003ccode\u003egithub\u003c/code\u003e, and its annotations now name the chosen criterion the way \u003ccode\u003epatch\u003c/code\u003e's do. Nothing else reaches stdout in that mode and \u003ccode\u003epatch --minimum\u003c/code\u003e still sets the exit status, so one CI step can annotate and gate. Documented under CI annotations in docs/CLI.md.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eA file with no branches or no methods reports the same percentage everywhere. A file tracked but never loaded had its empty branch and method sets forced to 0% (\u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/902\"\u003esimplecov-ruby/simplecov#902\u003c/a\u003e), from a time when simulation recorded no tuples for such a file and an empty set really did mean \u0026quot;nobody knows\u0026quot;. Simulation has synthesized those tuples statically for a while now, so an empty set is a fact about the file: it has no branches, or a directive skipped the ones it has. Such a file now reports 100% the way a loaded file with none always has, so the file list stops showing 0% beside a source view that says 100%, and a per-file branch or method minimum stops failing a file that has nothing to cover. A file carrying no table at all for the criterion is still unaccounted for, and 0% stands there. The HTML report's source view also takes each header percentage from the report rather than recomputing it from the fraction, so the two views cannot drift again. See \u003ca href=\"https://redirect.github.com/simplecov-ruby/simplecov/issues/1296\"\u003esimplecov-ruby/simplecov#1296\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/52a8754ccc443b0f049493ec7f06920bdcf6ad28\"\u003e\u003ccode\u003e52a8754\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4fb4ae1f2c92f0fdcbb0a4d80217706d46e8a217\"\u003e\u003ccode\u003e4fb4ae1\u003c/code\u003e\u003c/a\u003e Format a result collected before exit on Rails 8.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/14767413eeb89dab0051cf0b914725d9db5df252\"\u003e\u003ccode\u003e1476741\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/343a933b72ac5d8cacc11e7bccf1f881a75a6fd1\"\u003e\u003ccode\u003e343a933\u003c/code\u003e\u003c/a\u003e Stop leaking a flush thread in the forked-child production specs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/e64fcaa0a540f88d3e9bc79db0ec2abe08950132\"\u003e\u003ccode\u003ee64fcaa\u003c/code\u003e\u003c/a\u003e Bump ruby/setup-ruby from 1.323.0 to 1.325.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/cb8bd83fd13b3b7b863c149d487cdbd8264393fc\"\u003e\u003ccode\u003ecb8bd83\u003c/code\u003e\u003c/a\u003e Bump oxlint from 1.83.0 to 1.85.0 in /html_frontend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/4ee7894dd4feb3c18a30bb6d487e0266aed3318e\"\u003e\u003ccode\u003e4ee7894\u003c/code\u003e\u003c/a\u003e Bump version to 1.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/486e55e92a46b47ebe52ea97742105360fbe8c24\"\u003e\u003ccode\u003e486e55e\u003c/code\u003e\u003c/a\u003e bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/d2a62a86cd0fdba0813f0bc71b878c5c1aaeea29\"\u003e\u003ccode\u003ed2a62a8\u003c/code\u003e\u003c/a\u003e Resolve paths and wait on runners correctly on JRuby on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/simplecov-ruby/simplecov/commit/3a2e08eb02983bdc6ba92ee4a520231cd6ad97bf\"\u003e\u003ccode\u003e3a2e08e\u003c/code\u003e\u003c/a\u003e Load Prism only when the static extractor runs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/simplecov-ruby/simplecov/compare/v1.1.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `twilio-ruby` from 7.11.1 to 7.11.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/twilio/twilio-ruby/releases\"\u003etwilio-ruby's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.11.3\u003c/h2\u003e\n\u003ch2\u003e\u003cstrong\u003eRelease Notes\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eLibrary - Fix\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[PR \u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/issues/809\"\u003e#809\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/twilio/twilio-ruby/pull/809\"\u003etwilio/twilio-ruby#809\u003c/a\u003e): validate webhook signatures on percent-encoded request paths. Thanks to \u003ca href=\"https://github.com/manisha1997\"\u003e\u003ccode\u003e@​manisha1997\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTwiml\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eaudio_format\u003c/code\u003e and \u003ccode\u003esample_rate\u003c/code\u003e to Stream ...\n\n_Description has been truncated_","html_url":"https://github.com/josh-levinson/still_on/pull/58","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/josh-levinson%2Fstill_on/issues/58","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/58/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-10T05:12:06.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5788336076","node_id":"PR_kwDOUPqiw88AAAABHqIL2A","number":48,"state":"closed","title":"chore(deps): Bump the ruby-production group across 1 directory with 4 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-10-17T05:04:13.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-10T05:12:06.000Z","updated_at":"2026-10-17T05:04:15.000Z","time_to_close":604327,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"ruby-production","update_count":4,"packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"},{"name":"mcp","old_version":"1.6.0","new_version":"1.7.0","repository_url":"https://github.com/modelcontextprotocol/ruby-sdk"},{"name":"aws-sdk-s3","old_version":"1.232.1","new_version":"1.233.2","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"thruster","old_version":"0.1.26","new_version":"0.1.27","repository_url":"https://github.com/basecamp/thruster"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-production group with 4 updates in the / directory: [pg](https://github.com/ged/ruby-pg), [mcp](https://github.com/modelcontextprotocol/ruby-sdk), [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) and [thruster](https://github.com/basecamp/thruster).\n\nUpdates `pg` from 1.6.3 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mcp` from 1.6.0 to 1.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/releases\"\u003emcp's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0\u003c/h2\u003e\n\u003cp\u003eThis release lets a web application finish the OAuth authorization in the request that receives the redirect, bounds the \u003ccode\u003einitialize\u003c/code\u003e request a session retains and the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains, validates icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e, and repairs two \u003ccode\u003esubscriptions/listen\u003c/code\u003e cases: a request that cannot be encoded is refused, and a removed stream is marked closed.\nThe two bounds and the icon validation reject what earlier releases accepted and ship in a minor release under the exceptions described in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md\"\u003ehttps://github.com/modelcontextprotocol/ruby-sdk/blob/HEAD/VERSIONING.md\u003c/a\u003e; raise \u003ccode\u003emax_initialize_request_bytes:\u003c/code\u003e and \u003ccode\u003emax_resource_subscription_bytes:\u003c/code\u003e (or set them to \u003ccode\u003enil\u003c/code\u003e) where the byte bounds are too tight, and give Hash icons only the \u003ccode\u003eMCP::Icon\u003c/code\u003e members with a valid \u003ccode\u003esrc\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet a web application finish authorization in the request that receives the redirect (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the \u003ccode\u003einitialize\u003c/code\u003e request a session retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1\u003c/h2\u003e\n\u003cp\u003eThis release makes the OAuth client parse \u003ccode\u003eWWW-Authenticate\u003c/code\u003e headers and URLs in linear time and repairs the lifecycle of \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams: same-id streams are served, a keepalive thread ends with its slot, and the acknowledgement precedes the closing result.\u003c/p\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace authorization request parameters the endpoint URL already carries (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eServe \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams that carry the same request id (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnd a listen stream's keepalive thread when its slot is freed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse the \u003ccode\u003eWWW-Authenticate\u003c/code\u003e challenge in linear time (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep the acknowledgement first when the transport closes during a listen registration (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve dot segments in linear time when canonicalizing a URL (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/main/CHANGELOG.md\"\u003emcp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.7.0] - 2026-10-05\u003c/h2\u003e\n\u003cp\u003eThis release lets a web application finish the OAuth authorization in the request that receives the redirect,\nbounds the \u003ccode\u003einitialize\u003c/code\u003e request a session retains and the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains,\nvalidates icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e, and repairs two \u003ccode\u003esubscriptions/listen\u003c/code\u003e cases: a request that\ncannot be encoded is refused, and a removed stream is marked closed.\nThe two bounds and the icon validation reject what earlier releases accepted and ship in a minor release under\nthe exceptions described in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md\"\u003ehttps://github.com/modelcontextprotocol/ruby-sdk/blob/main/VERSIONING.md\u003c/a\u003e; raise \u003ccode\u003emax_initialize_request_bytes:\u003c/code\u003e and\n\u003ccode\u003emax_resource_subscription_bytes:\u003c/code\u003e (or set them to \u003ccode\u003enil\u003c/code\u003e) where the byte bounds are too tight, and give Hash icons only\nthe \u003ccode\u003eMCP::Icon\u003c/code\u003e members with a valid \u003ccode\u003esrc\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLet a web application finish authorization in the request that receives the redirect (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/573\"\u003e#573\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the resource URIs a \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/582\"\u003e#582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBound the \u003ccode\u003einitialize\u003c/code\u003e request a session retains (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eValidate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.6.1] - 2026-09-27\u003c/h2\u003e\n\u003cp\u003eThis release makes the OAuth client parse \u003ccode\u003eWWW-Authenticate\u003c/code\u003e headers and URLs in linear time and repairs\nthe lifecycle of \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams: same-id streams are served, a keepalive thread ends with its slot,\nand the acknowledgement precedes the closing result.\u003c/p\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace authorization request parameters the endpoint URL already carries (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eServe \u003ccode\u003esubscriptions/listen\u003c/code\u003e streams that carry the same request id (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnd a listen stream's keepalive thread when its slot is freed (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse the \u003ccode\u003eWWW-Authenticate\u003c/code\u003e challenge in linear time (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/571\"\u003e#571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep the acknowledgement first when the transport closes during a listen registration (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/574\"\u003e#574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eResolve dot segments in linear time when canonicalizing a URL (\u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/d4202c2fcba82013763d59ce63b8cfad6692e192\"\u003e\u003ccode\u003ed4202c2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/588\"\u003e#588\u003c/a\u003e from koic/release_1_7_0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/6cb9875b881b69a859a1a872cea62ddd74401aa5\"\u003e\u003ccode\u003e6cb9875\u003c/code\u003e\u003c/a\u003e Release 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/745bc61ef1817b88786bc455b0e0910bff9573cc\"\u003e\u003ccode\u003e745bc61\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/587\"\u003e#587\u003c/a\u003e from koic/mark_removed_listen_streams_closed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/cc886567054188b6ce8044f332387c8c61d83307\"\u003e\u003ccode\u003ecc88656\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/586\"\u003e#586\u003c/a\u003e from koic/validate_icons_given_as_hashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/0cef02410c3ad7b0fe57f4cedf0a5ce58e6a884a\"\u003e\u003ccode\u003e0cef024\u003c/code\u003e\u003c/a\u003e Mark a removed \u003ccode\u003esubscriptions/listen\u003c/code\u003e stream closed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/402cb56f99f9a3203eb50bacf79e4cfe1baedfd6\"\u003e\u003ccode\u003e402cb56\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/585\"\u003e#585\u003c/a\u003e from koic/refuse_listen_requests_that_cannot_be_encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/73d6da3f21b65455f4d9527e511e5061ffecb779\"\u003e\u003ccode\u003e73d6da3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/modelcontextprotocol/ruby-sdk/issues/584\"\u003e#584\u003c/a\u003e from koic/describe_the_pending_authorization_checks_a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/a49ab43825719bae96d28a432f0a8cbe6c791988\"\u003e\u003ccode\u003ea49ab43\u003c/code\u003e\u003c/a\u003e Validate icons given as Hashes through \u003ccode\u003eMCP::Icon\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/739dd558759d6debdd4576f031e84ffb659cecab\"\u003e\u003ccode\u003e739dd55\u003c/code\u003e\u003c/a\u003e Refuse \u003ccode\u003esubscriptions/listen\u003c/code\u003e requests that cannot be encoded\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/commit/095bd819910e492df8ec9688e21642f6aceb4171\"\u003e\u003ccode\u003e095bd81\u003c/code\u003e\u003c/a\u003e [Doc] Describe the pending authorization checks as the code establishes them\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/modelcontextprotocol/ruby-sdk/compare/v1.6.0...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-s3` from 1.232.1 to 1.233.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md\"\u003eaws-sdk-s3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.233.2 (2026-10-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix \u003ccode\u003edownload_file\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e leaving a corrupt file at the destination when a part raises a non-\u003ccode\u003eStandardError\u003c/code\u003e, and leaving a temp file behind when a caller-provided executor rejects a part.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Prevent \u003ccode\u003eupload_directory\u003c/code\u003e and \u003ccode\u003edownload_directory\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e from hanging when listing files or objects raises a non-\u003ccode\u003eStandardError\u003c/code\u003e, such as from a \u003ccode\u003e:filter_callback\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.233.1 (2026-10-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix unbounded memory growth in \u003ccode\u003eupload_stream\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e when the data source outpaces the upload (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-ruby/issues/3407\"\u003e#3407\u003c/a\u003e).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Prevent \u003ccode\u003eupload_file\u003c/code\u003e, \u003ccode\u003eupload_stream\u003c/code\u003e and \u003ccode\u003edownload_file\u003c/code\u003e on \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e from hanging when a worker thread is terminated by a non-\u003ccode\u003eStandardError\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.233.0 (2026-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Amazon S3 adds a new optional S3 Inventory field, IntelligentTieringReferenceDate, reporting the reference date S3 Intelligent-Tiering uses to evaluate an object's tier-transition eligibility. The value is populated for objects in the Intelligent-Tiering storage class and left blank for others.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.232.3 (2026-09-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Remove \u003ccode\u003e:thread_count\u003c/code\u003e from transfer options even when a custom \u003ccode\u003e:executor\u003c/code\u003e is configured on \u003ccode\u003eTransferManager\u003c/code\u003e, fixing an \u003ccode\u003eArgumentError\u003c/code\u003e raised on single-part \u003ccode\u003eupload_file\u003c/code\u003e calls.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Fix \u003ccode\u003e:thread_count\u003c/code\u003e being ignored by the deprecated \u003ccode\u003eObject#download_file\u003c/code\u003e, which always used the default thread count.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.232.2 (2026-09-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue - Ensure the internally-created executor is shutdown on error in \u003ccode\u003eTransferManager\u003c/code\u003e and \u003ccode\u003eAws::S3::Object\u003c/code\u003e resource methods, preventing leaked worker threads on multipart transfer failures (\u003ca href=\"https://redirect.github.com/aws/aws-sdk-ruby/issues/3419\"\u003e#3419\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.26 to 0.1.27\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thruster/blob/main/CHANGELOG.md\"\u003ethruster's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.27 / 2026-09-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate dependencies (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump golang.org/x/crypto to v0.56.0 (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBuild with Go 1.27.1, update dependencies, add make check (\u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/669643fa3ebc6c4daaba8b5210561f03e33f8c53\"\u003e\u003ccode\u003e669643f\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/38d3721e489a969fcabeb14b6471d33237f077f1\"\u003e\u003ccode\u003e38d3721\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/155\"\u003e#155\u003c/a\u003e from erikthoreson24/version-0.1.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/099297026d09ae63a57cc4b472ec945f1c956c85\"\u003e\u003ccode\u003e0992970\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/72796d797395a4eb5746828bbc12760c6ab95a4b\"\u003e\u003ccode\u003e72796d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/154\"\u003e#154\u003c/a\u003e from basecamp/deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/0864e8a6df6cbc97cff90a5a9ebd26298431f6be\"\u003e\u003ccode\u003e0864e8a\u003c/code\u003e\u003c/a\u003e Use http.Transport for h2c test client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/80e89ee10855d0bd02a1629bcd031d903b7c64a1\"\u003e\u003ccode\u003e80e89ee\u003c/code\u003e\u003c/a\u003e Update dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/22a99787322af951e6302513074338d5ea69472d\"\u003e\u003ccode\u003e22a9978\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/152\"\u003e#152\u003c/a\u003e from erikthoreson24/fix/bump-x-crypto-0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/b1865186badbd7a7565910b8df0b52a8f635d5df\"\u003e\u003ccode\u003eb186518\u003c/code\u003e\u003c/a\u003e Bump golang.org/x/crypto to v0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/3ef851682cd2a031294b7a2ac5e012a8bace0cfd\"\u003e\u003ccode\u003e3ef8516\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/basecamp/thruster/issues/150\"\u003e#150\u003c/a\u003e from basecamp/go-1.27.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/basecamp/thruster/commit/fa31b967c1c64e007ef9468e8da1a608491656dc\"\u003e\u003ccode\u003efa31b96\u003c/code\u003e\u003c/a\u003e Add make check to run go vet and govulncheck\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/basecamp/thruster/compare/v0.1.26...v0.1.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/urisrb/uris/pull/48","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/urisrb%2Furis/issues/48","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/48/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-09T18:39:53.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5782958925","node_id":"PR_kwDOR70W288AAAABHl43Wg","number":116,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-09T18:39:53.000Z","updated_at":"2026-10-09T18:40:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/tyrrell-IH/DiscordToDiary/pull/116","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/tyrrell-IH%2FDiscordToDiary/issues/116","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/116/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-06T02:44:13.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5722082203","node_id":"PR_kwDOUxels88AAAABG1OOXw","number":5,"state":"open","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-10-06T02:44:13.000Z","updated_at":"2026-10-06T02:44:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/sonofnos/shelfwise/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonofnos%2Fshelfwise/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"1.6.3","new_version":"1.7.0","update_type":"minor","path":null,"pr_created_at":"2026-10-05T23:05:23.000Z","version_change":"1.6.3 → 1.7.0","issue":{"uuid":"5720163541","node_id":"PR_kwDOQ7AAX88AAAABGzsfjA","number":86,"state":"closed","title":"Bump pg from 1.6.3 to 1.7.0","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-10-26T11:19:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-10-05T23:05:23.000Z","updated_at":"2026-10-26T11:20:00.000Z","time_to_close":1772074,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.3","new_version":"1.7.0","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.3 to 1.7.0.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.7.0 [2026-10-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd PG::Connection#embed_params and keyword \u003ccode\u003e:typename\u003c/code\u003e for its parameter casting. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\nThis allows to generate SQL strings with embedded parameters for easier debugging.\u003c/li\u003e\n\u003cli\u003eAdd PG::Connection#full_protocol_version which is new in PostgreSQL-18 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/695\"\u003e#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::Result#each_tuple \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/675\"\u003e#675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PG::TypeMap#query_param_encoders to retrieve encoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/726\"\u003e#726\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeduplicate result field name strings for better performance. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/750\"\u003e#750\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove compatibility to ruby \u0026lt; 3.1 and drops support of ruby-2.7 and ruby-3.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/749\"\u003e#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove GLV unlocking at all functions which process data modifiable in a second thread. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/721\"\u003e#721\u003c/a\u003e\nThis avoids possible premature garbage collection of query parameters and possible VM crash due to concurrent data manipulation.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e:static_symbol\u003c/code\u003e result field names. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/691\"\u003e#691\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove enforced rpath addition when no rpath is configured in rbconfig. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/699\"\u003e#699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimit memory allocation on invalid input into PG::BinaryDecoder::Array. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/743\"\u003e#743\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFree COPY buffers when decoders raise to avoid possible memory leak in get_copy_data. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/742\"\u003e#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent SQL injection in set_client_encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/741\"\u003e#741\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD to temporary ruby objects for conninfo string to avoid it's GC'ed prematurely. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/739\"\u003e#739\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove option \u0026quot;quirks_mode\u0026quot; from JSON en/decoder to fix compat with json-3.0 gem. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/737\"\u003e#737\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect calendar type of Ruby and PostgreSQL. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/725\"\u003e#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix broken set_notice_(receiver|processor) callback after GC.compact. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/734\"\u003e#734\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDisable DNS resolution in ruby when a service file is used, so that the priority of parameters is equal to libpq. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/635\"\u003e#635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse RARRAY_LENINT to avoid possible overflow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/728\"\u003e#728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible integer overflow at PG::BinaryEncoder::CopyRow and PG::TextEncoder::CopyRow. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/715\"\u003e#715\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possible integer overflow in query parameter encoding. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/719\"\u003e#719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnsure conninfo is a valid C string before closing the connection to avoid a double free of PGconn. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/709\"\u003e#709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise on a too large input string to PG::TextEncoder::Bytea. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/717\"\u003e#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCheck PG::BinaryEncoder::CopyRow array input size instead of producing an invalid output.\u003c/li\u003e\n\u003cli\u003eRemove accidentally copied \u0026quot;static\u0026quot; keyword from Copy and Record encoder. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/711\"\u003e#711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid possibility to replace typemap while being used in Copy and Record encoders and decoders. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/707\"\u003e#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd GC_GUARD's for encoding converted strings sent to the server. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/705\"\u003e#705\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incomplete transaction commit when thread is shutdown ungracefully. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/704\"\u003e#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAssign VALUE after registration per rb_gc_register_address() \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/703\"\u003e#703\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies for binary gems to PostgreSQL-18.6, OpenSSL-3.6.5, krb5-1.22.2 \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/752\"\u003e#752\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/fcf40c539921e93cd8f95b735b09c606df0dc040\"\u003e\u003ccode\u003efcf40c5\u003c/code\u003e\u003c/a\u003e Add new gem signing certificate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d41e07ae34a95381d81bb75a227df01b502bc5cc\"\u003e\u003ccode\u003ed41e07a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/753\"\u003e#753\u003c/a\u003e from larskanis/rm-pgsql-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/8e1ee8faf56d362547a3038e553334c01a0723b0\"\u003e\u003ccode\u003e8e1ee8f\u003c/code\u003e\u003c/a\u003e Remove some conditions for PostgreSQL-10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/050c56d589b025a5783327583b31e4773303f99f\"\u003e\u003ccode\u003e050c56d\u003c/code\u003e\u003c/a\u003e Fix typo in CHANGELOG and add version note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2c4934ecf1416a8f7453fab10bbad2c6ca17f58d\"\u003e\u003ccode\u003e2c4934e\u003c/code\u003e\u003c/a\u003e Bump VERSION to 1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f644ba2cdf7ece383af6a33659fef658336bb5c4\"\u003e\u003ccode\u003ef644ba2\u003c/code\u003e\u003c/a\u003e Update release notes once more\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b16542dd707857e2c51bfb4bf69b03b1a96ea635\"\u003e\u003ccode\u003eb16542d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/752\"\u003e#752\u003c/a\u003e from larskanis/upd-binaries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/66b27c621a50b397727bdec6a8ae568f7ac69b3c\"\u003e\u003ccode\u003e66b27c6\u003c/code\u003e\u003c/a\u003e Update dependencies for binary gems to\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6a073942f0ff0ee7e0edb68251d7f645722d02e3\"\u003e\u003ccode\u003e6a07394\u003c/code\u003e\u003c/a\u003e Add CHANGELOG entry for pg-1.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/53903568542b06ef89bc05ea7e1dd5ced8a21694\"\u003e\u003ccode\u003e5390356\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/749\"\u003e#749\u003c/a\u003e from larskanis/minruby-3.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.3...v1.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.3\u0026new-version=1.7.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/dantherussell/f1_local_timing/pull/86","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dantherussell%2Ff1_local_timing/issues/86","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/86/packages"}},{"old_version":"1.4.6","new_version":"1.6.3","update_type":"minor","path":null,"pr_created_at":"2026-09-25T11:58:24.000Z","version_change":"1.4.6 → 1.6.3","issue":{"uuid":"5582461986","node_id":"PR_kwDOB4ZGwM8AAAABFG1xow","number":343,"state":"open","title":"Bump the ruby-dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-09-25T11:58:24.000Z","updated_at":"2026-09-25T11:58:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":34,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.6","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.41.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"rails","old_version":"7.2.3.2","new_version":"7.2.4","repository_url":"https://github.com/rails/rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.17.4","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.2.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.257.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.232.1","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.4.1","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.7.0","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.4","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"loofah","old_version":"2.25.1","new_version":"2.25.2","repository_url":"https://github.com/flavorjones/loofah"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.7","repository_url":"https://github.com/rack/rack"},{"name":"globalid","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/rails/globalid"},{"name":"net-imap","old_version":"0.5.15","new_version":"0.6.7","repository_url":"https://github.com/ruby/net-imap"},{"name":"faraday","old_version":"2.14.3","new_version":"2.14.4","repository_url":"https://github.com/lostisland/faraday"},{"name":"json","old_version":"2.19.3","new_version":"3.0.2","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"7.0.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.49.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.6` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.15.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.41.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [rails](https://github.com/rails/rails) | `7.2.3.2` | `7.2.4` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.17.4` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.2.0` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.257.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.232.1` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.4.1` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.7.0` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.4` |\n| [loofah](https://github.com/flavorjones/loofah) | `2.25.1` | `2.25.2` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.7` |\n| [globalid](https://github.com/rails/globalid) | `1.3.0` | `1.4.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.15` | `0.6.7` |\n| [faraday](https://github.com/lostisland/faraday) | `2.14.3` | `2.14.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `3.0.2` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `7.0.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.49.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.7.0` |\n\n\nUpdates `sqlite3` from 1.6.1 to 2.9.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre\u003e\u003ccode\u003ed8b1f7d23efd7abac285775a9566562fc7debfef79d594e3a20354406fb7907c  gems/sqlite3-2.9.6-aarch64-linux-gnu.gem\r\n3579e1c98cdc7ff5c3722847bb63ed4e1efb7ff675cb5e1e48ef2d4da5fb3bc9  gems/sqlite3-2.9.6-aarch64-linux-musl.gem\r\n33541500e3615da02afe54a9cc38b17a6985d3cf9d8b76d6d0a83002f114e7ec  gems/sqlite3-2.9.6-arm-linux-gnu.gem\r\nc5490af48bb228fefa54314e9541375c3907e70f8109f3881b5ff97e1c93ae33  gems/sqlite3-2.9.6-arm-linux-musl.gem\r\n849b5d7f795e60fe25076d62c72dd722beb45b3850b516ad978d60ee848ec15b  gems/sqlite3-2.9.6-arm64-darwin.gem\r\n1f2b88f417fd0a8c1d5ef19c7e817d8b9c61bee6e33b6b36255fb6e40148e6f8  gems/sqlite3-2.9.6-x64-mingw-ucrt.gem\r\nfbaa9f46f9708f57dd8a459b37fc269f9613e0cacf1547df01aa439cc45c20c0  gems/sqlite3-2.9.6-x86-linux-gnu.gem\r\n6715026fbb5530e810b28ef43b9c4f84cd3c991f67b9d808a31fcc32b847abbd  gems/sqlite3-2.9.6-x86-linux-musl.gem\r\nb5842fea77781c14da03fa7bc0feb82db03a69e135affcb6f5399cbd2797a5f3  gems/sqlite3-2.9.6-x86_64-darwin.gem\r\n613188ce02f614126ddbc38c5e217ccffd6306d0dcd9adca9764547aa890a634  gems/sqlite3-2.9.6-x86_64-linux-gnu.gem\r\nd493b11818a3573387a1d56e1ee8fa00da23a683a7a1cc063e7a0feeed843abf  gems/sqlite3-2.9.6-x86_64-linux-musl.gem\r\n956fe606956420d04ac7157d3ace620c8caba2135b2e05c76e483493da24d08e  gems/sqlite3-2.9.6.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.6 / 2026-08-11\u003c/h2\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a garbage collection bug where the argument array passed to a custom aggregate function's \u003ccode\u003estep\u003c/code\u003e was not visible to the GC, so arguments could be collected mid-conversion when the aggregate takes two or more arguments, corrupting the values passed to \u003ccode\u003estep\u003c/code\u003e or crashing the process. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-mwm8-39rw-8826\"\u003eGHSA-mwm8-39rw-8826\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/733\"\u003e#733\u003c/a\u003e \u003ca href=\"https://github.com/jeremy\"\u003e\u003ccode\u003e@​jeremy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix a leak where custom aggregate handler instances were never released, so a connection accumulated one instance per \u003ccode\u003eGROUP BY\u003c/code\u003e group per query for its lifetime. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GC compaction issues with custom functions, aggregates, collations, \u003ccode\u003e#trace\u003c/code\u003e and \u003ccode\u003e#authorizer=\u003c/code\u003e. These callbacks were registered with sqlite by passing a raw Ruby object pointer as user data; keeping the object reachable prevented collection but not relocation, after which sqlite held a stale address and the next call could raise \u003ccode\u003eNoMethodError\u003c/code\u003e, return a wrong result, or segfault. Affects applications that call \u003ccode\u003eGC.compact\u003c/code\u003e or run with \u003ccode\u003eGC.auto_compact = true\u003c/code\u003e. The equivalent issue in \u003ccode\u003e#busy_handler\u003c/code\u003e was fixed in \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/466\"\u003e#466\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix the private methods \u003ccode\u003eDatabase#open_v2\u003c/code\u003e and \u003ccode\u003e#open16\u003c/code\u003e silently replacing a live connection and leaking the previous connection handle when invoked via \u003ccode\u003esend\u003c/code\u003e on an open database. They now raise \u003ccode\u003eSQLite3::Exception\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TEXT values containing an embedded NUL byte being truncated at the first NUL when passed as arguments to functions created with \u003ccode\u003eDatabase#define_function\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix an exception raised inside a \u003ccode\u003eDatabase#define_function\u003c/code\u003e block leaving the connection's sqlite mutex held, which deadlocked any other thread that later used the connection. The exception now propagates to the caller and the connection remains usable. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDatabase.new\u003c/code\u003e now raises \u003ccode\u003eArgumentError\u003c/code\u003e when the filename or VFS name contains an embedded NUL byte (or an embedded 0x0000 code unit in a UTF-16 filename), instead of silently opening a path truncated at the NUL. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWhen \u003ccode\u003eDatabase.new\u003c/code\u003e fails to open the database file, the underlying sqlite3 connection handle is now closed immediately instead of waiting for the garbage collector to clean it up. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/719\"\u003e#719\u003c/a\u003e \u003ca href=\"https://github.com/katafrakt\"\u003e\u003ccode\u003e@​katafrakt\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.5 / 2026-06-07\u003c/h2\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_3.html\"\u003ev3.53.2\u003c/a\u003e (from v3.53.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/709\"\u003e#709\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity / Stability\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix use-after-free issue with custom functions, when the same function name is used with multiple arities. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-28hh-pr2h-2w89\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/710\"\u003e#710\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix use-after-free issue with aggregate functions, if a statement is used after a soft database close. See \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\"\u003ehttps://github.com/sparklemotion/sqlite3-ruby/security/advisories/GHSA-j7fr-3v8c-3qc3\u003c/a\u003e for more information. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/711\"\u003e#711\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.4 / 2026-05-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_1.html\"\u003ev3.53.1\u003c/a\u003e (from v3.53.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/704\"\u003e#704\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/a52dc0d61351570eeff1a1ffb15054b795dfeebc\"\u003e\u003ccode\u003ea52dc0d\u003c/code\u003e\u003c/a\u003e version bump to v2.9.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/cc5ac0cdf05af8148f4363410da0ba32508d9c97\"\u003e\u003ccode\u003ecc5ac0c\u003c/code\u003e\u003c/a\u003e Root the aggregate argument array so GC cannot free live values (GHSA-mwm8-39...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/abcb0f60c777d29cc1c8ed37327cd164f90420f1\"\u003e\u003ccode\u003eabcb0f6\u003c/code\u003e\u003c/a\u003e Reject database filenames and VFS names containing NUL (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/1d86b7a46c842a5157cc1562f16ad6c8756004b4\"\u003e\u003ccode\u003e1d86b7a\u003c/code\u003e\u003c/a\u003e Raise when open_v2 or open16 is called on an open database (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/723017134144333bb782d96aeec82450ed5b5c87\"\u003e\u003ccode\u003e7230171\u003c/code\u003e\u003c/a\u003e Stop a raise inside a UDF block from deadlocking other threads (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2677f9a7a81fc48e8df3ba668606f4c60bd6ad42\"\u003e\u003ccode\u003e2677f9a\u003c/code\u003e\u003c/a\u003e Pass TEXT values containing embedded NULs to UDFs intact (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3de8f6ee30741bde839a98ce88b9023eac09c555\"\u003e\u003ccode\u003e3de8f6e\u003c/code\u003e\u003c/a\u003e doc: update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/ac6bd2f79598290a6625d413fd309a7ae2f85143\"\u003e\u003ccode\u003eac6bd2f\u003c/code\u003e\u003c/a\u003e Release aggregate instances when sqlite finishes with them (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/32460e99f0d82a2a966b84f37a73cdaab96652c1\"\u003e\u003ccode\u003e32460e9\u003c/code\u003e\u003c/a\u003e Stop sqlite calling into moved Ruby objects (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/f600993d286539411aa81f3b43d1c3678a63fd09\"\u003e\u003ccode\u003ef600993\u003c/code\u003e\u003c/a\u003e build(deps-dev): update rubocop-minitest requirement (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/727\"\u003e#727\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix partial for Active Model when extra locals are passed in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/617\"\u003erails/jbuilder#617\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.15.0...v2.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/31eb6e909968adafb3dbd6ca7a603d23f738f154\"\u003e\u003ccode\u003e31eb6e9\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/154b0fe1d4494af8060a462fb78bad15e479b694\"\u003e\u003ccode\u003e154b0fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/617\"\u003e#617\u003c/a\u003e from rails/rm-fix-616\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d3e763b03ab8a14d3a1a03ae29d03b42e91181d7\"\u003e\u003ccode\u003ed3e763b\u003c/code\u003e\u003c/a\u003e Fix partial for Active Model when extra locals are passed in\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.41.0 (2026-06-14)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.19.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.17.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.17.4\u003c/h2\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.3\u003c/h2\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.2\u003c/h2\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.1\u003c/h2\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.17.0\u003c/h2\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.17.4 (2026-08-13)\u003c/h3\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate CLI/installed app example to use loopback IP redirect (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.3 (2026-07-27)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd option validation and error handling to ServiceAccountCredentials.make_creds (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/588\"\u003e#588\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/3da9927091e3ffc4f2d062a404d837de962a6f97\"\u003e3da9927\u003c/a\u003e), refs \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/482\"\u003e#482\u003c/a\u003e \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/544\"\u003e#544\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.2 (2026-07-23)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ereturn auth header from source_credentials in ImpersonatedServiceAccountCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/586\"\u003e#586\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.1 (2026-06-08)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erepair impersonated email helper (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/578\"\u003e#578\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/6317f9b3f44a26ffff569ed29a09b929cc2ab45e\"\u003e6317f9b\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/577\"\u003e#577\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.17.0 (2026-06-04)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eport googleauth from multi_json to standard lib json (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5fe4ed96a042f36874a609349be5911db1247c8b\"\u003e5fe4ed9\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/572\"\u003e#572\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/343","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/343","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/343/packages"}},{"old_version":"1.5.6","new_version":"1.6.3","update_type":"minor","path":null,"pr_created_at":"2026-08-06T23:10:09.000Z","version_change":"1.5.6 → 1.6.3","issue":{"uuid":"5085324440","node_id":"PR_kwDOAW-RD877ytkL","number":807,"state":"open","title":"Bump the all-dependencies group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["ruby","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-08-06T23:10:09.000Z","updated_at":"2026-09-10T23:10:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":35,"packages":[{"name":"shakapacker","old_version":"10.2.0","new_version":"10.3.2","repository_url":"https://github.com/shakacode/shakapacker"},{"name":"rails","old_version":"8.1.3","new_version":"8.1.3.1","repository_url":"https://github.com/rails/rails"},{"name":"pg","old_version":"1.5.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.23.0","new_version":"1.26.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"puma","old_version":"6.4.2","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"thruster","old_version":"0.1.16","new_version":"0.1.26","repository_url":"https://github.com/basecamp/thruster"},{"name":"uglifier","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/lautis/uglifier"},{"name":"jbuilder","old_version":"2.12.0","new_version":"2.15.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"redis","old_version":"5.3.0","new_version":"6.0.0","repository_url":"https://github.com/redis/redis-rb"},{"name":"sdoc","old_version":"2.6.1","new_version":"2.6.5","repository_url":"https://github.com/zzak/sdoc"},{"name":"rails-html-sanitizer","old_version":"1.7.0","new_version":"1.7.1","repository_url":"https://github.com/rails/rails-html-sanitizer"},{"name":"autoprefixer-rails","old_version":"10.4.16.0","new_version":"10.4.21.0","repository_url":"https://github.com/ai/autoprefixer-rails"},{"name":"redcarpet","old_version":"3.6.0","new_version":"3.6.1","repository_url":"https://github.com/vmg/redcarpet"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"spring","old_version":"4.2.1","new_version":"4.7.0","repository_url":"https://github.com/rails/spring"},{"name":"factory_bot_rails","old_version":"6.4.3","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop","old_version":"1.69.0","new_version":"1.90.0","repository_url":"https://github.com/rubocop/rubocop"},{"name":"rubocop-performance","old_version":"1.23.1","new_version":"1.27.0","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.29.1","new_version":"2.37.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.4.0","new_version":"3.10.2","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"debug","old_version":"1.9.2","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"pry","old_version":"0.14.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"pry-doc","old_version":"1.5.0","new_version":"1.7.0","repository_url":"https://github.com/pry/pry-doc"},{"name":"pry-stack_explorer","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pry/pry-stack_explorer"},{"name":"capybara-screenshot","old_version":"1.0.26","new_version":"1.0.27","repository_url":"https://github.com/mattheworiordan/capybara-screenshot"},{"name":"coveralls_reborn","old_version":"0.25.0","new_version":"1.0.0","repository_url":"https://github.com/tagliala/coveralls-ruby-reborn"},{"name":"database_cleaner","old_version":"2.0.2","new_version":"2.1.0","repository_url":"https://github.com/DatabaseCleaner/database_cleaner"},{"name":"launchy","old_version":"3.0.1","new_version":"3.1.1","repository_url":"https://github.com/copiousfreetime/launchy"},{"name":"rails_best_practices","old_version":"1.23.2","new_version":"1.23.4","repository_url":"https://github.com/flyerhzm/rails_best_practices"},{"name":"rspec-rails","old_version":"6.0.4","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"selenium-webdriver","old_version":"4.22.0","new_version":"4.48.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"stimulus-rails","old_version":"1.3.3","new_version":"1.3.4","repository_url":"https://github.com/hotwired/stimulus-rails"},{"name":"turbo-rails","old_version":"2.0.11","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the all-dependencies group with 34 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [shakapacker](https://github.com/shakacode/shakapacker) | `10.2.0` | `10.3.2` |\n| [rails](https://github.com/rails/rails) | `8.1.3` | `8.1.3.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.6` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.23.0` | `1.26.0` |\n| [puma](https://github.com/puma/puma) | `6.4.2` | `8.0.2` |\n| [thruster](https://github.com/basecamp/thruster) | `0.1.16` | `0.1.26` |\n| [uglifier](https://github.com/lautis/uglifier) | `4.2.0` | `4.2.1` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.12.0` | `2.15.1` |\n| [redis](https://github.com/redis/redis-rb) | `5.3.0` | `6.0.0` |\n| [sdoc](https://github.com/zzak/sdoc) | `2.6.1` | `2.6.5` |\n| [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) | `1.7.0` | `1.7.1` |\n| [autoprefixer-rails](https://github.com/ai/autoprefixer-rails) | `10.4.16.0` | `10.4.21.0` |\n| [redcarpet](https://github.com/vmg/redcarpet) | `3.6.0` | `3.6.1` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [spring](https://github.com/rails/spring) | `4.2.1` | `4.7.0` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.3` | `6.5.1` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.69.0` | `1.90.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.23.1` | `1.27.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.29.1` | `2.37.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.4.0` | `3.10.2` |\n| [debug](https://github.com/ruby/debug) | `1.9.2` | `1.11.1` |\n| [pry](https://github.com/pry/pry) | `0.14.2` | `0.16.0` |\n| [pry-doc](https://github.com/pry/pry-doc) | `1.5.0` | `1.7.0` |\n| [pry-stack_explorer](https://github.com/pry/pry-stack_explorer) | `0.6.1` | `0.6.3` |\n| [capybara-screenshot](https://github.com/mattheworiordan/capybara-screenshot) | `1.0.26` | `1.0.27` |\n| [coveralls_reborn](https://github.com/tagliala/coveralls-ruby-reborn) | `0.25.0` | `1.0.0` |\n| [database_cleaner](https://github.com/DatabaseCleaner/database_cleaner) | `2.0.2` | `2.1.0` |\n| [launchy](https://github.com/copiousfreetime/launchy) | `3.0.1` | `3.1.1` |\n| [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) | `1.23.2` | `1.23.4` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.4` | `8.0.4` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.22.0` | `4.48.0` |\n| [stimulus-rails](https://github.com/hotwired/stimulus-rails) | `1.3.3` | `1.3.4` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.11` | `2.0.23` |\n\n\nUpdates `shakapacker` from 10.2.0 to 10.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/releases\"\u003eshakapacker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev10.3.2\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.3.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs delegating Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e in unset and empty \u003ccode\u003ePATH\u003c/code\u003e environments.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shakacode/shakapacker/blob/main/CHANGELOG.md\"\u003eshakapacker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v10.3.2] - August 28, 2026\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBumped the development and CI pin for Rspack from \u003ccode\u003e2.0.1\u003c/code\u003e to \u003ccode\u003e2.2.0\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1258\"\u003e#1258\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1258\"\u003eshakacode/shakapacker#1258\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The \u003ccode\u003e@rspack/core\u003c/code\u003e, \u003ccode\u003e@rspack/cli\u003c/code\u003e, \u003ccode\u003e@rspack/dev-server\u003c/code\u003e, and \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e peer ranges are unchanged at \u003ccode\u003e^2.0.0\u003c/code\u003e, so applications may stay on any Rspack \u003ccode\u003e2.x\u003c/code\u003e release; only this repository's own development pins and dummy-app lockfiles move, so CI now exercises Rspack 2.2 against the range it already advertises. Annotated config exports (\u003ccode\u003ebin/shakapacker-config --annotate\u003c/code\u003e) also now list the complete \u003ccode\u003eoptimization.moduleIds\u003c/code\u003e and \u003ccode\u003eoptimization.chunkIds\u003c/code\u003e value sets for both bundlers, including \u003ccode\u003e'compat-hashed'\u003c/code\u003e, which requires Rspack 2.2 or newer and is documented as opt-in rather than made a default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e not telling Rspack apps that a \u003ccode\u003e.swcrc\u003c/code\u003e is ignored outright.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1276\"\u003eshakacode/shakapacker#1276\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Doctor previously told Rspack apps only that moving \u003ccode\u003e.swcrc\u003c/code\u003e settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not help, while deliberately making no claim about the \u003ccode\u003e.swcrc\u003c/code\u003e itself, because the behavior had never been verified. It has now been verified against \u003ccode\u003e@rspack/core\u003c/code\u003e 2.0.1 and 2.2.0: Rspack's \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e never reads \u003ccode\u003e.swcrc\u003c/code\u003e. A \u003ccode\u003e.swcrc\u003c/code\u003e setting \u003ccode\u003ejsc.target\u003c/code\u003e and injecting an optimizer global produced byte-identical output to no \u003ccode\u003e.swcrc\u003c/code\u003e at all, while the same options passed inline as loader options did change the output. A \u003ccode\u003e.swcrc\u003c/code\u003e enabling decorator syntax likewise failed to unblock a decorator source, including with empty loader options and with \u003ccode\u003eswcrc\u003c/code\u003e/\u003ccode\u003econfigFile\u003c/code\u003e set, so this is not merely inline options taking precedence. Doctor now states that a \u003ccode\u003e.swcrc\u003c/code\u003e is not read on Rspack and that every setting in it is silently inert - the mirror image of the \u003ccode\u003econfig/swc.config.js\u003c/code\u003e case in \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e - and continues to point at overriding the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule. Webpack messaging is unchanged. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1263\"\u003e#1263\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e staying silent about SWC configuration on Rspack apps that do not set \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1269\"\u003e#1269\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1269\"\u003eshakacode/shakapacker#1269\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Shakapacker's Rspack rules always transpile with \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e and never consult \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, so \u003ccode\u003econfig/swc.config.js\u003c/code\u003e goes unread on an Rspack app configured for Babel or esbuild exactly as it does on one configured for SWC. Doctor's Rspack SWC-configuration warnings were gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, so those apps got no warning at all. Those warnings now reach any Rspack app: that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is not read, and, for a \u003ccode\u003e.swcrc\u003c/code\u003e, that moving its settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e would not affect the build. The webpack-only SWC content checks and the \u0026quot;merged with Shakapacker's defaults\u0026quot; messaging stay gated on \u003ccode\u003ejavascript_transpiler: swc\u003c/code\u003e, and apps with \u003ccode\u003ejavascript_transpiler: none\u003c/code\u003e remain opted out. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1265\"\u003e#1265\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed \u003ccode\u003eshakapacker:doctor\u003c/code\u003e and \u003ccode\u003erake shakapacker:migrate_to_swc\u003c/code\u003e telling Rspack apps that \u003ccode\u003econfig/swc.config.js\u003c/code\u003e is merged into their build.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1260\"\u003e#1260\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1260\"\u003eshakacode/shakapacker#1260\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Rspack builds never read \u003ccode\u003econfig/swc.config.js\u003c/code\u003e, because Shakapacker's Rspack rules set their \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e options inline. Doctor now warns that the file is unread on Rspack instead of reporting it as merged (and skips its content checks there), and no longer tells Rspack users with a \u003ccode\u003e.swcrc\u003c/code\u003e to migrate those settings into \u003ccode\u003econfig/swc.config.js\u003c/code\u003e. The migrator's post-migration guidance and the generated file header instead show how to override the built-in \u003ccode\u003ebuiltin:swc-loader\u003c/code\u003e rule: apply \u003ccode\u003ewebpack-merge\u003c/code\u003e's \u003ccode\u003emergeWithRules\u003c/code\u003e to the \u003cem\u003eoutput\u003c/em\u003e of \u003ccode\u003egenerateRspackConfig()\u003c/code\u003e, since that function merges with plain \u003ccode\u003emerge\u003c/code\u003e, which concatenates \u003ccode\u003emodule.rules\u003c/code\u003e, so an override passed into it is appended alongside the built-in rule rather than replacing it. Webpack apps keep the existing messaging. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1259\"\u003e#1259\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed post-publish GitHub release failures hiding successful package publication details.\u003c/strong\u003e The release task now prints its normal publication summary and the exact \u003ccode\u003esync_github_release\u003c/code\u003e recovery command before exiting nonzero. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1250\"\u003e#1250\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1250\"\u003eshakacode/shakapacker#1250\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstubs to fail closed when \u003ccode\u003ePATH\u003c/code\u003e is unset.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1240\"\u003eshakacode/shakapacker#1240\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e now report the missing-Node error without executing an app-root \u003ccode\u003enode\u003c/code\u003e binary when \u003ccode\u003ePATH\u003c/code\u003e is unset, while explicit \u003ccode\u003ePATH\u003c/code\u003e values retain their existing Node-resolution behavior. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1234\"\u003e#1234\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the deprecation warning for the legacy \u003ccode\u003ebundler\u003c/code\u003e config key claiming the value was understood while it was ignored.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1270\"\u003e#1270\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1270\"\u003eshakacode/shakapacker#1270\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. An app whose \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e set only \u003ccode\u003ebundler:\u003c/code\u003e was told the key was deprecated and then built with a different bundler, because \u003ccode\u003eassets_bundler\u003c/code\u003e always resolves from the bundled defaults and the legacy key was never read. The warning now states that the value is ignored, names the bundler actually in use, and tells you to set \u003ccode\u003eassets_bundler\u003c/code\u003e instead. One resolution change accompanies it: a config that leaves \u003ccode\u003eassets_bundler:\u003c/code\u003e blank while setting \u003ccode\u003ebundler:\u003c/code\u003e previously resolved the legacy value in Ruby and now resolves \u003ccode\u003ewebpack\u003c/code\u003e, matching what \u003ccode\u003epackage/config.ts\u003c/code\u003e already built for it. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1262\"\u003e#1262\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.1] - August 3, 2026\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed 502 responses for proxied dev server assets under \u003ccode\u003erack-proxy\u003c/code\u003e v1.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1222\"\u003e#1222\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1222\"\u003eshakacode/shakapacker#1222\u003c/a\u003e) by \u003ca href=\"https://github.com/jcbpl\"\u003ejcbpl\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1220\"\u003e#1220\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed dev-server liveness checks treating refused macOS 27 connections as running.\u003c/strong\u003e The Ruby probe now verifies the connected socket's \u003ccode\u003eSO_ERROR\u003c/code\u003e result before proxying asset requests, avoiding false-positive dev-server detection and resulting 502 responses. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1225\"\u003e#1225\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1225\"\u003eshakacode/shakapacker#1225\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1224\"\u003e#1224\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed webpack Babel, SWC, and esbuild rules skipping explicitly included \u003ccode\u003e.cjs\u003c/code\u003e files.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1219\"\u003e#1219\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1219\"\u003eshakacode/shakapacker#1219\u003c/a\u003e) by \u003ca href=\"https://github.com/oiahoon\"\u003eoiahoon\u003c/a\u003e. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1218\"\u003e#1218\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAdded a \u003ccode\u003eshakapacker:doctor\u003c/code\u003e warning for Rspack React Refresh v2 configs that still use the v1 default-export constructor pattern.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1207\"\u003e#1207\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1207\"\u003eshakacode/shakapacker#1207\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Existing configs with \u003ccode\u003econst ReactRefreshPlugin = require(\u0026quot;@rspack/plugin-react-refresh\u0026quot;)\u003c/code\u003e followed by \u003ccode\u003enew ReactRefreshPlugin()\u003c/code\u003e can fail after upgrading to \u003ccode\u003e@rspack/plugin-react-refresh\u003c/code\u003e v2 with \u003ccode\u003eReactRefreshPlugin is not a constructor\u003c/code\u003e; Doctor now points to the affected JS/TS config file and suggests the named-export/default/module compatibility form. Fixes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1204\"\u003e#1204\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed the missing-\u003ccode\u003e@babel/core\u003c/code\u003e failure to report an actionable install message.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1212\"\u003e#1212\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1212\"\u003eshakacode/shakapacker#1212\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Babel-transpiled builds whose app lacks \u003ccode\u003e@babel/core\u003c/code\u003e previously surfaced a raw module-resolution error from the Babel 8 compatibility check; the rule now explains which package to install and how to switch \u003ccode\u003ejavascript_transpiler\u003c/code\u003e instead. Refs \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1163\"\u003e#1163\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDocumented the required \u003ccode\u003ecss-loader@^7.1.4\u003c/code\u003e in the v10 Rspack upgrade instructions.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1211\"\u003e#1211\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1211\"\u003eshakacode/shakapacker#1211\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. The v10 upgrade guide's copy-paste Rspack v2 commands omitted \u003ccode\u003ecss-loader\u003c/code\u003e, so apps following them could upgrade into an unsatisfied peer dependency.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v10.3.0] - July 5, 2026\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAllowed \u003ccode\u003ewebpack-dev-server\u003c/code\u003e v6\u003c/strong\u003e. [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1102\"\u003e#1102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1102\"\u003eshakacode/shakapacker#1102\u003c/a\u003e) by \u003ca href=\"https://github.com/G-Rath\"\u003eG-Rath\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFixed implicit SWC defaults for existing webpack/Babel apps without \u003ccode\u003eswc-loader\u003c/code\u003e.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Webpack apps that omit both \u003ccode\u003ejavascript_transpiler\u003c/code\u003e and the deprecated \u003ccode\u003ewebpack_loader\u003c/code\u003e now fall back to Babel with a warning when Shakapacker's bundled SWC default is active, \u003ccode\u003eswc-loader\u003c/code\u003e is missing, and Babel is present. Explicit transpiler settings, webpack apps with \u003ccode\u003eswc-loader\u003c/code\u003e, and Rspack's built-in SWC path keep their existing behavior. Closes \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1203\"\u003e#1203\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed JavaScript config loading for missing Rails environments to use the production fallback.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1206\"\u003e#1206\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1206\"\u003eshakacode/shakapacker#1206\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. When \u003ccode\u003eRAILS_ENV\u003c/code\u003e has no matching section in \u003ccode\u003econfig/shakapacker.yml\u003c/code\u003e, the Node package config now merges the \u003ccode\u003eproduction\u003c/code\u003e section instead of only bundled defaults, matching Ruby configuration loading and honoring explicit production \u003ccode\u003ejavascript_transpiler\u003c/code\u003e, \u003ccode\u003esource_path\u003c/code\u003e, \u003ccode\u003edev_server\u003c/code\u003e, and related settings for custom environments such as staging.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed helper binstub Node resolution after the \u003ccode\u003ev10.2.0\u003c/code\u003e Ruby-binstub regression.\u003c/strong\u003e [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1200\"\u003eshakacode/shakapacker#1200\u003c/a\u003e) and [PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1201\"\u003e#1201\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/pull/1201\"\u003eshakacode/shakapacker#1201\u003c/a\u003e) by \u003ca href=\"https://github.com/justin808\"\u003ejustin808\u003c/a\u003e. Restores shell-compatible Node lookup for \u003ccode\u003ebin/shakapacker-config\u003c/code\u003e and \u003ccode\u003ebin/diff-bundler-config\u003c/code\u003e when \u003ccode\u003ePATH\u003c/code\u003e is empty, while keeping friendly missing-Node errors for \u003ccode\u003eENOENT\u003c/code\u003e and \u003ccode\u003eEACCES\u003c/code\u003e. For an unset \u003ccode\u003ePATH\u003c/code\u003e, PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1200\"\u003e#1200\u003c/a\u003e deliberately delegates Node resolution to Ruby \u003ccode\u003eexec\u003c/code\u003e's default-path behavior; PR \u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1240\"\u003e#1240\u003c/a\u003e later changed that case to fail closed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/f152fe6d65407f4c14757adb5e750df2af9bd591\"\u003e\u003ccode\u003ef152fe6\u003c/code\u003e\u003c/a\u003e Release 10.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/594a691997e632bdd9b1f564fbe4d12b7c59ea08\"\u003e\u003ccode\u003e594a691\u003c/code\u003e\u003c/a\u003e Update changelog for 10.3.2 (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/843409ab02d878f5bed5f4014cdca68f312e60ec\"\u003e\u003ccode\u003e843409a\u003c/code\u003e\u003c/a\u003e Tell Rspack apps that .swcrc is ignored outright, not just unmigratable (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1276\"\u003e#1276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ee6bba96eb1fcc9848a9e3b135d3225a25ee89f8\"\u003e\u003ccode\u003eee6bba9\u003c/code\u003e\u003c/a\u003e Warn Rspack apps that SWC config files are unread for any javascript_transpil...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/ac81bcf1cdc4c988c718a24ff919293205a22b09\"\u003e\u003ccode\u003eac81bcf\u003c/code\u003e\u003c/a\u003e Fix the misleading deprecation warning for the ignored legacy bundler key (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/7eddfe1864bc0e89b59ede208e677037e0ea4982\"\u003e\u003ccode\u003e7eddfe1\u003c/code\u003e\u003c/a\u003e Document how to override builtin:swc-loader options on Rspack (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1267\"\u003e#1267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/24f3c2e26d9eb396e503fa75a3584a476ae2a046\"\u003e\u003ccode\u003e24f3c2e\u003c/code\u003e\u003c/a\u003e Trigger Node based checks on markdown-only pull requests (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1266\"\u003e#1266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/8d6ed807be5584375e9e0f59b885c47719c842ee\"\u003e\u003ccode\u003e8d6ed80\u003c/code\u003e\u003c/a\u003e Make AGENTS.md canonical for shared agent guidance (\u003ca href=\"https://redirect.github.com/shakacode/shakapacker/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/980c1946e3fdfdc8dda9699666ccf6c08d345f12\"\u003e\u003ccode\u003e980c194\u003c/code\u003e\u003c/a\u003e Document rspack 2.2 user-facing changes: SWC Wasm plugin break, rspackPublicP...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shakacode/shakapacker/commit/d51c1a8b8a364f5a675207c1a3ffc984a20aa832\"\u003e\u003ccode\u003ed51c1a8\u003c/code\u003e\u003c/a\u003e Bump rspack dev pin from 2.0.1 to 2.2.0 and correct moduleIds/chunkIds config...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shakacode/shakapacker/compare/v10.2.0...v10.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.1.3 to 8.1.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3.1\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Record\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction View\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Pack\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Job\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Mailer\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAction Cable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Storage\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDisable libvips's unfuzzed image loaders and savers.\u003c/p\u003e\n\u003cp\u003elibvips flags some of its loaders and savers as \u0026quot;unfuzzed\u0026quot; or \u0026quot;untrusted\u0026quot;, meaning they are only\nsafe for trusted content. Active Storage will call \u003ccode\u003eVips.block_untrusted(true)\u003c/code\u003e to disable them\nwhile booting. An application that needs a specific loader or saver may re-enable it in an\ninitializer.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/3989ebf3473d71e4ceca28154b0b57b5bf22db24\"\u003e\u003ccode\u003e3989ebf\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/349e7a5d5b4b715af1e416db824f3c078a7d59e5\"\u003e\u003ccode\u003e349e7a5\u003c/code\u003e\u003c/a\u003e Disable libvips's unfuzzed image loaders and savers\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/rails/compare/v8.1.3...v8.1.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.6 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.6...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.23.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.6...v1.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.5...v1.24.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.5\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.4...v1.24.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.26.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle top level \u003ccode\u003eCoverage\u003c/code\u003e constant being defined, but without it being the true stdlib \u003ccode\u003ecoverage\u003c/code\u003e module.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ebootsnap precompile\u003c/code\u003e that could generate a corrupted cache entry if an already cached YAML file was modified\nwithout changing its size.\u003c/li\u003e\n\u003cli\u003eWorkaround a potential Ruby SEGV if \u003ccode\u003eBootsnap.instrumentation\u003c/code\u003e raised an error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove YAML parsing cache to more efficiently handle \u003ccode\u003eTime\u003c/code\u003e, \u003ccode\u003eDate\u003c/code\u003e and \u003ccode\u003eDateTime\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDon't invalidate the compile cache when YJIT is toggled. YJIT is a runtime JIT and doesn't change the\nserialized instruction sequences that are cached, but enabling it (via \u003ccode\u003e--yjit\u003c/code\u003e, \u003ccode\u003eRUBYOPT\u003c/code\u003e, or\n\u003ccode\u003eRubyVM::YJIT.enable\u003c/code\u003e) adds a \u003ccode\u003e +YJIT\u003c/code\u003e marker to \u003ccode\u003eRUBY_DESCRIPTION\u003c/code\u003e (\u003ccode\u003e +YJIT \u0026lt;token\u0026gt;\u003c/code\u003e on \u003ccode\u003eYJIT_SUPPORT\u003c/code\u003e\nbuilds), which is part of the cache key. This previously discarded the entire compile cache whenever YJIT\nwas enabled at runtime but not at precompile time (or vice versa). The marker is now stripped before hashing.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eCompileCache::Native.fetch\u003c/code\u003e and \u003ccode\u003e.precompile\u003c/code\u003e reading a non-\u003ccode\u003eString\u003c/code\u003e path argument (e.g. a \u003ccode\u003ePathname\u003c/code\u003e)\nwith \u003ccode\u003eRSTRING_PTR\u003c/code\u003e. Regression from 1.24.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.6\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix detection of Ruby bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/22023\"\u003e#22023\u003c/a\u003e on some patch versions of Ruby 3.4, and properly apply the workaround.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/67a7290e0318ad59e8c97bb81c816dcf23801f20\"\u003e\u003ccode\u003e67a7290\u003c/code\u003e\u003c/a\u003e Release 1.26.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/1881b9a26daa6c2d891f3864cc71ae159749ba4b\"\u003e\u003ccode\u003e1881b9a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/573\"\u003e#573\u003c/a\u003e from byroot/same-size-miscompilation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/605bbeb9a531b6a6ff0e261bd677e9dd31997838\"\u003e\u003ccode\u003e605bbeb\u003c/code\u003e\u003c/a\u003e Fix precompilation when regenerating an existing cache entry of the same size\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/5fd59dace072f2d5e8bf5fac192dbccf1bf2662f\"\u003e\u003ccode\u003e5fd59da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/569\"\u003e#569\u003c/a\u003e from OskarEichler/codex/accept-tempfile-fd-zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/70550c774a93cc9382edc5785529ad97ae9acf8f\"\u003e\u003ccode\u003e70550c7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/568\"\u003e#568\u003c/a\u003e from OskarEichler/codex/remove-umask-debug-output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8aed2ed171cc25a4a337622d6e5a5b1af3e707be\"\u003e\u003ccode\u003e8aed2ed\u003c/code\u003e\u003c/a\u003e Accept tempfile descriptor zero\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/f7457ea0b2ef3f94237ef677f7f07a002961efd4\"\u003e\u003ccode\u003ef7457ea\u003c/code\u003e\u003c/a\u003e Remove umask debug output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/9ee62a2f3ac544e0e6130620d90be7a64779db34\"\u003e\u003ccode\u003e9ee62a2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/567\"\u003e#567\u003c/a\u003e from byroot/rename-mod\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7c8178ec5862db4099e4a29846ded0bc34bb0bbd\"\u003e\u003ccode\u003e7c8178e\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003ewrite(2)\u003c/code\u003e being interrupted.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/3e755ca99d0e2f4cacd4bf5d78b1bfa25dac9456\"\u003e\u003ccode\u003e3e755ca\u003c/code\u003e\u003c/a\u003e atomic_write_cache_file: stop leaking FD on error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.4.2 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.1 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.4.2...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `thruster` from 0.1.16 to 0.1.26\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/basecamp/thru...\n\n_Description has been truncated_","html_url":"https://github.com/shakacode/react-webpack-rails-tutorial/pull/807","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shakacode%2Freact-webpack-rails-tutorial/issues/807","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/807/packages"}},{"old_version":"8.20.0","new_version":"8.21.0","update_type":"minor","path":null,"pr_created_at":"2026-05-24T01:46:51.000Z","version_change":"8.20.0 → 8.21.0","issue":{"uuid":"4510170029","node_id":"PR_kwDOSBBjO87etoch","number":20,"state":"open","title":"Bump the minor-and-patch group across 1 directory with 28 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-24T01:46:51.000Z","updated_at":"2026-05-24T01:46:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":28,"packages":[{"name":"lefthook","old_version":"2.1.6","new_version":"2.1.8","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"prettier","old_version":"3.8.1","new_version":"3.8.3","repository_url":"https://github.com/prettier/prettier"},{"name":"typescript-eslint","old_version":"8.59.1","new_version":"8.59.4","repository_url":"https://github.com/typescript-eslint/typescript-eslint"},{"name":"@opentelemetry/auto-instrumentations-node","old_version":"0.74.0","new_version":"0.76.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js-contrib"},{"name":"@opentelemetry/exporter-trace-otlp-http","old_version":"0.216.0","new_version":"0.218.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/sdk-node","old_version":"0.216.0","new_version":"0.218.0","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"@opentelemetry/semantic-conventions","old_version":"1.40.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-js"},{"name":"express-rate-limit","old_version":"8.3.2","new_version":"8.5.2","repository_url":"https://github.com/express-rate-limit/express-rate-limit"},{"name":"helmet","old_version":"8.1.0","new_version":"8.2.0","repository_url":"https://github.com/helmetjs/helmet"},{"name":"openai","old_version":"6.34.0","new_version":"6.39.0","repository_url":"https://github.com/openai/openai-node"},{"name":"pdf-parse-new","old_version":"2.0.0","new_version":"2.1.0","repository_url":"https://github.com/simonegosetto/pdf-parse-new"},{"name":"fast-xml-parser","old_version":"5.7.2","new_version":"5.8.0","repository_url":"https://github.com/NaturalIntelligence/fast-xml-parser"},{"name":"vitest","old_version":"4.1.4","new_version":"4.1.7","repository_url":"https://github.com/vitest-dev/vitest"},{"name":"react-router-dom","old_version":"7.14.0","new_version":"7.15.1","repository_url":"https://github.com/remix-run/react-router"},{"name":"@playwright/test","old_version":"1.59.1","new_version":"1.60.0","repository_url":"https://github.com/microsoft/playwright"},{"name":"orval","old_version":"8.5.3","new_version":"8.12.3","repository_url":"https://github.com/orval-labs/orval"},{"name":"pg","old_version":"8.20.0","new_version":"8.21.0","repository_url":"https://github.com/brianc/node-postgres"},{"name":"@types/pg","old_version":"8.18.0","new_version":"8.20.0","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"drizzle-kit","old_version":"0.31.9","new_version":"0.31.10","repository_url":"https://github.com/drizzle-team/drizzle-orm"},{"name":"@tailwindcss/vite","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"@types/node","old_version":"25.3.5","new_version":"25.9.1","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"framer-motion","old_version":"12.35.1","new_version":"12.40.0","repository_url":"https://github.com/motiondivision/motion"},{"name":"react-dom","old_version":"19.1.0","new_version":"19.2.6","repository_url":"https://github.com/facebook/react"},{"name":"react","old_version":"19.1.0","new_version":"19.2.6","repository_url":"https://github.com/facebook/react"},{"name":"@types/react","old_version":"19.2.14","new_version":"19.2.15","repository_url":"https://github.com/DefinitelyTyped/DefinitelyTyped"},{"name":"tailwind-merge","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/dcastil/tailwind-merge"},{"name":"tailwindcss","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/tailwindlabs/tailwindcss"},{"name":"tsx","old_version":"4.21.0","new_version":"4.22.3","repository_url":"https://github.com/privatenumber/tsx"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.6` | `2.1.8` |\n| [prettier](https://github.com/prettier/prettier) | `3.8.1` | `3.8.3` |\n| [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) | `8.59.1` | `8.59.4` |\n| [@opentelemetry/auto-instrumentations-node](https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node) | `0.74.0` | `0.76.0` |\n| [@opentelemetry/exporter-trace-otlp-http](https://github.com/open-telemetry/opentelemetry-js) | `0.216.0` | `0.218.0` |\n| [@opentelemetry/sdk-node](https://github.com/open-telemetry/opentelemetry-js) | `0.216.0` | `0.218.0` |\n| [@opentelemetry/semantic-conventions](https://github.com/open-telemetry/opentelemetry-js) | `1.40.0` | `1.41.1` |\n| [express-rate-limit](https://github.com/express-rate-limit/express-rate-limit) | `8.3.2` | `8.5.2` |\n| [helmet](https://github.com/helmetjs/helmet) | `8.1.0` | `8.2.0` |\n| [openai](https://github.com/openai/openai-node) | `6.34.0` | `6.39.0` |\n| [pdf-parse-new](https://github.com/simonegosetto/pdf-parse-new) | `2.0.0` | `2.1.0` |\n| [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `5.7.2` | `5.8.0` |\n| [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) | `4.1.4` | `4.1.7` |\n| [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) | `7.14.0` | `7.15.1` |\n| [@playwright/test](https://github.com/microsoft/playwright) | `1.59.1` | `1.60.0` |\n| [orval](https://github.com/orval-labs/orval) | `8.5.3` | `8.12.3` |\n| [pg](https://github.com/brianc/node-postgres/tree/HEAD/packages/pg) | `8.20.0` | `8.21.0` |\n| [@types/pg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/pg) | `8.18.0` | `8.20.0` |\n| [drizzle-kit](https://github.com/drizzle-team/drizzle-orm) | `0.31.9` | `0.31.10` |\n| [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) | `4.2.1` | `4.3.0` |\n| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.3.5` | `25.9.1` |\n| [framer-motion](https://github.com/motiondivision/motion) | `12.35.1` | `12.40.0` |\n| [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) | `19.1.0` | `19.2.6` |\n| [react](https://github.com/facebook/react/tree/HEAD/packages/react) | `19.1.0` | `19.2.6` |\n| [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) | `19.2.14` | `19.2.15` |\n| [tailwind-merge](https://github.com/dcastil/tailwind-merge) | `3.5.0` | `3.6.0` |\n| [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) | `4.2.1` | `4.3.0` |\n| [tsx](https://github.com/privatenumber/tsx) | `4.21.0` | `4.22.3` |\n\n\nUpdates `lefthook` from 2.1.6 to 2.1.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/releases\"\u003elefthook's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.8\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e488a5f99a5a496e5837f757f8ce3e6c6d1415792 fix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.1.7\u003c/h2\u003e\n\u003ch2\u003eChangelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ef415a9d3fce1d4f6af62622cf96c72e04ecf7bd3 chore: go mod tidy\u003c/li\u003e\n\u003cli\u003ecf4ab9ea4580f5aeb0d4b61d4dd169533e5bb0c9 fix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e4c0e000d6fe9f35f42efefb9263b0b4cb5dfbd49 fix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1418\"\u003e#1418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e76aa843ef5ceb6970f61cd2ff28d16dd2ec82272 fix: linter, sacrifice optimization for readability\u003c/li\u003e\n\u003cli\u003e9d53c36ed9a26d3bf66e341a9650a0ecac9b6a37 fix: separate fallback push branch from pathspecs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1396\"\u003e#1396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e22c9f773cf93b59005bd244c5b00caab2947a755 fix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e37d83986d8e6d6bf6792f57e22e7cbb1a9e28064 fix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eeb1064d0b8c6248627960bea1abf6891db5a21b1 refactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md\"\u003elefthook's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.8 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1421\"\u003e#1421\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.7 (2026-05-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1420\"\u003e#1420\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1418\"\u003e#1418\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1417\"\u003e#1417\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1416\"\u003e#1416\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1385\"\u003e#1385\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: linter, sacrifice optimization for readability by \u003ca href=\"\"\u003e\u003ccode\u003e@​mrexox\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: separate fallback push branch from pathspecs (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/pull/1396\"\u003e#1396\u003c/a\u003e) by \u003ca href=\"\"\u003e\u003ccode\u003e@​lawrence3699\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/9e75b2138b4d31b156d3256c2b0617851377aaf2\"\u003e\u003ccode\u003e9e75b21\u003c/code\u003e\u003c/a\u003e 2.1.8: reduce warning for core.hooksPath if it matches the default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/488a5f99a5a496e5837f757f8ce3e6c6d1415792\"\u003e\u003ccode\u003e488a5f9\u003c/code\u003e\u003c/a\u003e fix: do not warn if local hooks path is equal to default hooks path (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1421\"\u003e#1421\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/b5c8310e174489a3705dbbe240eea035058a9128\"\u003e\u003ccode\u003eb5c8310\u003c/code\u003e\u003c/a\u003e 2.1.7: restore unstaged changes when possible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/37d83986d8e6d6bf6792f57e22e7cbb1a9e28064\"\u003e\u003ccode\u003e37d8398\u003c/code\u003e\u003c/a\u003e fix: use contrast colors (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1420\"\u003e#1420\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/4c0e000d6fe9f35f42efefb9263b0b4cb5dfbd49\"\u003e\u003ccode\u003e4c0e000\u003c/code\u003e\u003c/a\u003e fix: apply stage_fixed only if it is safe (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1418\"\u003e#1418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/22c9f773cf93b59005bd244c5b00caab2947a755\"\u003e\u003ccode\u003e22c9f77\u003c/code\u003e\u003c/a\u003e fix: try to always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1417\"\u003e#1417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/cf4ab9ea4580f5aeb0d4b61d4dd169533e5bb0c9\"\u003e\u003ccode\u003ecf4ab9e\u003c/code\u003e\u003c/a\u003e fix: always restore unstaged changes (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/f415a9d3fce1d4f6af62622cf96c72e04ecf7bd3\"\u003e\u003ccode\u003ef415a9d\u003c/code\u003e\u003c/a\u003e chore: go mod tidy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/eb1064d0b8c6248627960bea1abf6891db5a21b1\"\u003e\u003ccode\u003eeb1064d\u003c/code\u003e\u003c/a\u003e refactor: add new logger without a global state (\u003ca href=\"https://redirect.github.com/evilmartians/lefthook/issues/1385\"\u003e#1385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evilmartians/lefthook/commit/76aa843ef5ceb6970f61cd2ff28d16dd2ec82272\"\u003e\u003ccode\u003e76aa843\u003c/code\u003e\u003c/a\u003e fix: linter, sacrifice optimization for readability\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evilmartians/lefthook/compare/v2.1.6...v2.1.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prettier` from 3.8.1 to 3.8.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/releases\"\u003eprettier's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.8.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSCSS: Prevent trailing comma in \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18471\"\u003eprettier/prettier#18471\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/3.8.3/CHANGELOG.md#383\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.8.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Angular v21.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e🔗 \u003ca href=\"https://github.com/prettier/prettier/blob/main/CHANGELOG.md#382\"\u003eChangelog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prettier/prettier/blob/main/CHANGELOG.md\"\u003eprettier's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.8.3\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.2...3.8.3\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eSCSS: Prevent trailing comma in \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18471\"\u003e#18471\u003c/a\u003e by \u003ca href=\"https://github.com/kovsu\"\u003e\u003ccode\u003e@​kovsu\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"scss\"\u003e\u003ccode\u003e// Input\n$value: if(sass(false): 1; else: -1);\n\u003cp\u003e// Prettier 3.8.2\n$value: if(\nsass(false): 1; else: -1,\n);\u003c/p\u003e\n\u003cp\u003e// Prettier 3.8.3\n$value: if(sass(false): 1; else: -1);\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch1\u003e3.8.2\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/prettier/prettier/compare/3.8.1...3.8.2\"\u003ediff\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eAngular: Support Angular v21.2 (\u003ca href=\"https://redirect.github.com/prettier/prettier/pull/18722\"\u003e#18722\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/prettier/prettier/pull/19034\"\u003e#19034\u003c/a\u003e by \u003ca href=\"https://github.com/fisker\"\u003e\u003ccode\u003e@​fisker\u003c/code\u003e\u003c/a\u003e)\u003c/h4\u003e\n\u003cp\u003eExhaustive typechecking with \u003ccode\u003e@default never;\u003c/code\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"html\"\u003e\u003ccode\u003e\u0026lt;!-- Input --\u0026gt;\n@switch (foo) {\n  @case (1) {}\n  @default never;\n}\n\u003cp\u003e\u0026lt;!-- Prettier 3.8.1 --\u0026gt;\nSyntaxError: Incomplete block \u0026quot;default never\u0026quot;. If you meant to write the @ character, you should use the \u0026quot;\u0026amp;\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/64\"\u003e#64\u003c/a\u003e;\u0026quot; HTML entity instead. (3:3)\u003c/p\u003e\n\u003cp\u003e\u0026lt;!-- Prettier 3.8.2 --\u0026gt;\n\u003ca href=\"https://github.com/switch\"\u003e\u003ccode\u003e@​switch\u003c/code\u003e\u003c/a\u003e (foo) {\n\u003ca href=\"https://github.com/case\"\u003e\u003ccode\u003e@​case\u003c/code\u003e\u003c/a\u003e (1) {}\n\u003ca href=\"https://github.com/default\"\u003e\u003ccode\u003e@​default\u003c/code\u003e\u003c/a\u003e never;\n}\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003earrow function\u003c/code\u003e and \u003ccode\u003einstanceof\u003c/code\u003e expressions.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"html\"\u003e\u003ccode\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/d7108a79ec745c04292aabf22c4c1adbd690b191\"\u003e\u003ccode\u003ed7108a7\u003c/code\u003e\u003c/a\u003e Release 3.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/177f90898170d363ef64fde663e4d13170688bfe\"\u003e\u003ccode\u003e177f908\u003c/code\u003e\u003c/a\u003e Prevent trailing comma in SCSS \u003ccode\u003eif()\u003c/code\u003e function (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/18471\"\u003e#18471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/1cd40668c3d6f2f4cf9d87bbc9096d92361b2606\"\u003e\u003ccode\u003e1cd4066\u003c/code\u003e\u003c/a\u003e Release \u003ccode\u003e@​prettier/plugin-oxc\u003c/code\u003e\u003ca href=\"https://github.com/0\"\u003e\u003ccode\u003e@​0\u003c/code\u003e\u003c/a\u003e.1.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/a8700e245038cd8cc0cf28ef06ffedbcb3fc2dfc\"\u003e\u003ccode\u003ea8700e2\u003c/code\u003e\u003c/a\u003e Update oxc-parser to v0.125.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/752157c78eca6f0a30e5d5cb513b682c5ecfa01e\"\u003e\u003ccode\u003e752157c\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/053fd418e180b12fa2014260212fae831f5fc5ec\"\u003e\u003ccode\u003e053fd41\u003c/code\u003e\u003c/a\u003e Bump Prettier dependency to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/904c6365ec46726fd0e21021c52ae934b7e5abc6\"\u003e\u003ccode\u003e904c636\u003c/code\u003e\u003c/a\u003e Clean changelog_unreleased\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/dc1f7fcc508d116cbf1644d69a1f0eb93e40d4a4\"\u003e\u003ccode\u003edc1f7fc\u003c/code\u003e\u003c/a\u003e Update dependents count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/b31557cf331a02acf83e7e29d1001b070189a0d9\"\u003e\u003ccode\u003eb31557c\u003c/code\u003e\u003c/a\u003e Release 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prettier/prettier/commit/96bbaeda0525bf758e464aed2f939d739a85c315\"\u003e\u003ccode\u003e96bbaed\u003c/code\u003e\u003c/a\u003e Support Angular v21.2 (\u003ca href=\"https://redirect.github.com/prettier/prettier/issues/18722\"\u003e#18722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prettier/prettier/compare/3.8.1...3.8.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typescript-eslint` from 8.59.1 to 8.59.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases\"\u003etypescript-eslint's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.59.4\u003c/h2\u003e\n\u003ch2\u003e8.59.4 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-floating-promises] stack overflow when using recursive types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12294\"\u003e#12294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eproject-service:\u003c/strong\u003e throw error cause in \u003ccode\u003egetParsedConfigFileFromTSServer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12321\"\u003e#12321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-eslint:\u003c/strong\u003e export Compatible* types from typescript-eslint to resolve pnpm TS error (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340\"\u003e#12340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEvyatar Daud \u003ca href=\"https://github.com/StyleShit\"\u003e\u003ccode\u003e@​StyleShit\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elumir\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.59.3\u003c/h2\u003e\n\u003ch2\u003e8.59.3 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003ev8.59.2\u003c/h2\u003e\n\u003ch2\u003e8.59.2 (2026-05-04)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-unsafe-type-assertion] handle crash on recursive template literal types (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12150\"\u003e#12150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eeslint-plugin:\u003c/strong\u003e [no-deprecated] object destructuring values should be treated as declarations (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12292\"\u003e#12292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erule-tester:\u003c/strong\u003e add TypeScript as a peer dependency (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12288\"\u003e#12288\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDariusz Czajkowski\u003c/li\u003e\n\u003cli\u003eDima Barabash\u003c/li\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md\"\u003etypescript-eslint's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.59.4 (2026-05-18)\u003c/h2\u003e\n\u003ch3\u003e🩹 Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypescript-eslint:\u003c/strong\u003e export Compatible* types from typescript-eslint to resolve pnpm TS error (\u003ca href=\"https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12340\"\u003e#12340\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e❤️ Thank You\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eKirk Waiblinger \u003ca href=\"https://github.com/kirkwaiblinger\"\u003e\u003ccode\u003e@​kirkwaiblinger\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.4\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.59.3 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.3\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003ch2\u003e8.59.2 (2026-05-04)\u003c/h2\u003e\n\u003cp\u003eThis was a version bump only for typescript-eslint to align it with other projects, there were no code changes.\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.59.2\"\u003eGitHub Releases\u003c/a\u003e for more information.\u003c/p\u003e\n\u003cp\u003eYou can read about our \u003ca href=\"https://typescript-eslint.io/users/versioning\"\u003eversioning strategy\u003c/a\u003e and \u003ca href=\"https://typescript-eslint.io/users/releases\"\u003ereleases\u003c/a\u003e on our website.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/ca6ca1431b6d18235297a7e29feb5d98f012dff2\"\u003e\u003ccode\u003eca6ca14\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/4b927c607755b2648d5854b9e928c1dbb2b8e088\"\u003e\u003ccode\u003e4b927c6\u003c/code\u003e\u003c/a\u003e fix(typescript-eslint): export Compatible* types from typescript-eslint to re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/48e13c0261e3cb1bf4f4dfaa462cdb3a56ef7383\"\u003e\u003ccode\u003e48e13c0\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/44f9625336841a8ee3eb01a9e02e49b1d7b12648\"\u003e\u003ccode\u003e44f9625\u003c/code\u003e\u003c/a\u003e chore(deps): update vitest monorepo to v4.1.5 (\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12307\"\u003e#12307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commit/2ec35f1760aade4df4c631d76d78c7ed5e136333\"\u003e\u003ccode\u003e2ec35f1\u003c/code\u003e\u003c/a\u003e chore(release): publish 8.59.2\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typescript-eslint/typescript-eslint/commits/v8.59.4/packages/typescript-eslint\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/auto-instrumentations-node` from 0.74.0 to 0.76.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/releases\"\u003e@​opentelemetry/auto-instrumentations-node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eauto-instrumentations-node: v0.76.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.75.0...auto-instrumentations-node-v0.76.0\"\u003e0.76.0\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update deps matching '@opentelemetry/*' (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3523\"\u003e#3523\u003c/a\u003e) (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003ee26a90a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following workspace dependencies were updated\n\u003cul\u003e\n\u003cli\u003edependencies\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-amqplib\u003c/code\u003e bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-lambda\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-sdk\u003c/code\u003e bumped from ^0.72.0 to ^0.73.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-bunyan\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cassandra-driver\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-connect\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cucumber\u003c/code\u003e bumped from ^0.33.0 to ^0.34.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dataloader\u003c/code\u003e bumped from ^0.34.0 to ^0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dns\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-express\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-fs\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-generic-pool\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-graphql\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-hapi\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-ioredis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-kafkajs\u003c/code\u003e bumped from ^0.26.0 to ^0.27.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-knex\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-koa\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-lru-memoizer\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-memcached\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongodb\u003c/code\u003e bumped from ^0.70.0 to ^0.71.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongoose\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql2\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-nestjs-core\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-net\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-openai\u003c/code\u003e bumped from ^0.15.0 to ^0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-oracledb\u003c/code\u003e bumped from ^0.42.0 to ^0.43.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pg\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pino\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-redis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-restify\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-router\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-runtime-node\u003c/code\u003e bumped from ^0.30.0 to ^0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-socket\u003c/code\u003e.io bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-tedious\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-undici\u003c/code\u003e bumped from ^0.27.0 to ^0.28.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/blob/main/packages/auto-instrumentations-node/CHANGELOG.md\"\u003e@​opentelemetry/auto-instrumentations-node's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/compare/auto-instrumentations-node-v0.75.0...auto-instrumentations-node-v0.76.0\"\u003e0.76.0\u003c/a\u003e (2026-05-13)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e update deps matching '@opentelemetry/*' (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/issues/3523\"\u003e#3523\u003c/a\u003e) (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003ee26a90a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe following workspace dependencies were updated\n\u003cul\u003e\n\u003cli\u003edependencies\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-amqplib\u003c/code\u003e bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-lambda\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-aws-sdk\u003c/code\u003e bumped from ^0.72.0 to ^0.73.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-bunyan\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cassandra-driver\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-connect\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-cucumber\u003c/code\u003e bumped from ^0.33.0 to ^0.34.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dataloader\u003c/code\u003e bumped from ^0.34.0 to ^0.35.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-dns\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-express\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-fs\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-generic-pool\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-graphql\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-hapi\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-ioredis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-kafkajs\u003c/code\u003e bumped from ^0.26.0 to ^0.27.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-knex\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-koa\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-lru-memoizer\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-memcached\u003c/code\u003e bumped from ^0.60.0 to ^0.61.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongodb\u003c/code\u003e bumped from ^0.70.0 to ^0.71.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mongoose\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-mysql2\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-nestjs-core\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-net\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-openai\u003c/code\u003e bumped from ^0.15.0 to ^0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-oracledb\u003c/code\u003e bumped from ^0.42.0 to ^0.43.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pg\u003c/code\u003e bumped from ^0.69.0 to ^0.70.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-pino\u003c/code\u003e bumped from ^0.63.0 to ^0.64.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-redis\u003c/code\u003e bumped from ^0.65.0 to ^0.66.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-restify\u003c/code\u003e bumped from ^0.62.0 to ^0.63.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-router\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-runtime-node\u003c/code\u003e bumped from ^0.30.0 to ^0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-socket\u003c/code\u003e.io bumped from ^0.64.0 to ^0.65.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-tedious\u003c/code\u003e bumped from ^0.36.0 to ^0.37.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-undici\u003c/code\u003e bumped from ^0.27.0 to ^0.28.0\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@​opentelemetry/instrumentation-winston\u003c/code\u003e bumped from ^0.61.0 to ^0.62.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/15ef7506553f631ea4181391e0c5725a56f0d082\"\u003e\u003ccode\u003e15ef750\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3508\"\u003e#3508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e26a90af6e2fb4666b22388b770add7a60140c9b\"\u003e\u003ccode\u003ee26a90a\u003c/code\u003e\u003c/a\u003e feat(deps): update deps matching '@opentelemetry/*' (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3523\"\u003e#3523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/b68fb6dcc0649631ebecab7bde81879486f74f0b\"\u003e\u003ccode\u003eb68fb6d\u003c/code\u003e\u003c/a\u003e chore: release main (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3498\"\u003e#3498\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commit/e1ef3d1b14f177afd738f1c967018c1dc6fc900e\"\u003e\u003ccode\u003ee1ef3d1\u003c/code\u003e\u003c/a\u003e feat(deps): update deps matching '@opentelemetry/*' (\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/tree/HEAD/packages/auto-instrumentations-node/issues/3507\"\u003e#3507\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js-contrib/commits/auto-instrumentations-node-v0.76.0/packages/auto-instrumentations-node\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/exporter-trace-otlp-http` from 0.216.0 to 0.218.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/exporter-trace-otlp-http's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.218.0\u003c/h2\u003e\n\u003ch2\u003e0.218.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs metrics serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6629\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): show all config validation errors, if there are multiple \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6683\"\u003e#6683\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(sdk-node): allow startNodeSDK() without an arg \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6688\"\u003e#6688\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6691\"\u003e#6691\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(sdk-logs): use \u003ccode\u003eLogger.enabled()\u003c/code\u003e within \u003ccode\u003eLogger.emit()\u003c/code\u003e implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6680\"\u003e#6680\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexperimental/v0.217.0\u003c/h2\u003e\n\u003ch2\u003e0.217.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs trace serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6625\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): auto-generate TypeScript types from OTel declarative config JSON schema (stable v1.0.0) using \u003ccode\u003ejson-schema-to-typescript\u003c/code\u003e and \u003ccode\u003eajv\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6533\"\u003e#6533\u003c/a\u003e \u003ca href=\"https://github.com/MikeGoldsmith\"\u003e\u003ccode\u003e@​MikeGoldsmith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration, sdk-node): \u003ccode\u003estartNodeSDK()\u003c/code\u003e code path now uses \u003ccode\u003elog_level\u003c/code\u003e configuration to setup a DiagConsoleLogger \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6668\"\u003e#6668\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNote that allowed values for \u003ccode\u003elog_level\u003c/code\u003e in a configuration YAML file are \u003cem\u003enot\u003c/em\u003e the same set as for \u003ccode\u003eOTEL_LOG_LEVEL\u003c/code\u003e. Use \u003ccode\u003elog_level: trace\u003c/code\u003e to see \u003cem\u003eall\u003c/em\u003e logs (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=ALL\u003c/code\u003e). Use \u003ccode\u003elog_level: fatal\u003c/code\u003e to effectively disable the SDK's internal diagnostic logger (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=NONE\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eIf \u003ccode\u003elog_level\u003c/code\u003e is not specified, a diagnostic console logger at \u0026quot;info\u0026quot; level will be setup.\u003c/li\u003e\n\u003cli\u003eAn invalid YAML config file will now result in a noop OTel SDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bug: Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(configuration): do not validate \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e value before using it for file config \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6643\"\u003e#6643\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve how 'additionalProperties' in JSON schema is translated to TS types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6650\"\u003e#6650\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): remove stripMinItems and preprocessNullArrays from validation/parsing \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6657\"\u003e#6657\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve handling of enums in generated types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6659\"\u003e#6659\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve the technique for removing '| null' on types the JSON Schema \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6662\"\u003e#6662\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(sampler-jaeger-remote): add missing axios dep \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6656\"\u003e#6656\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(exporter-prometheus): handle malformed URLs in Prometheus exporter request handler \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6674\"\u003e#6674\u003c/a\u003e \u003ca href=\"https://github.com/homanp\"\u003e\u003ccode\u003e@​homanp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/06ad0eaaecbd49f5ead871325f852cc2a3454079\"\u003e\u003ccode\u003e06ad0ea\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6703\"\u003e#6703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/38ca257e64ebd13f5603d5539f8a48d6d9232037\"\u003e\u003ccode\u003e38ca257\u003c/code\u003e\u003c/a\u003e feat(otlp-transformer): replace protobufjs metrics serialization with custom ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.216.0...experimental/v0.218.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/sdk-node` from 0.216.0 to 0.218.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/sdk-node's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eexperimental/v0.218.0\u003c/h2\u003e\n\u003ch2\u003e0.218.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs metrics serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6629\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): show all config validation errors, if there are multiple \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6683\"\u003e#6683\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(sdk-node): allow startNodeSDK() without an arg \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6688\"\u003e#6688\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:house: Internal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003erefactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6691\"\u003e#6691\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor(sdk-logs): use \u003ccode\u003eLogger.enabled()\u003c/code\u003e within \u003ccode\u003eLogger.emit()\u003c/code\u003e implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6680\"\u003e#6680\u003c/a\u003e \u003ca href=\"https://github.com/david-luna\"\u003e\u003ccode\u003e@​david-luna\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eexperimental/v0.217.0\u003c/h2\u003e\n\u003ch2\u003e0.217.0\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat(otlp-transformer): replace protobufjs trace serialization with custom implementation \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6625\"\u003e#6625\u003c/a\u003e \u003ca href=\"https://github.com/pichlermarc\"\u003e\u003ccode\u003e@​pichlermarc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration): auto-generate TypeScript types from OTel declarative config JSON schema (stable v1.0.0) using \u003ccode\u003ejson-schema-to-typescript\u003c/code\u003e and \u003ccode\u003eajv\u003c/code\u003e \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6533\"\u003e#6533\u003c/a\u003e \u003ca href=\"https://github.com/MikeGoldsmith\"\u003e\u003ccode\u003e@​MikeGoldsmith\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(configuration, sdk-node): \u003ccode\u003estartNodeSDK()\u003c/code\u003e code path now uses \u003ccode\u003elog_level\u003c/code\u003e configuration to setup a DiagConsoleLogger \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6668\"\u003e#6668\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNote that allowed values for \u003ccode\u003elog_level\u003c/code\u003e in a configuration YAML file are \u003cem\u003enot\u003c/em\u003e the same set as for \u003ccode\u003eOTEL_LOG_LEVEL\u003c/code\u003e. Use \u003ccode\u003elog_level: trace\u003c/code\u003e to see \u003cem\u003eall\u003c/em\u003e logs (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=ALL\u003c/code\u003e). Use \u003ccode\u003elog_level: fatal\u003c/code\u003e to effectively disable the SDK's internal diagnostic logger (equivalent of \u003ccode\u003eOTEL_LOG_LEVEL=NONE\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eIf \u003ccode\u003elog_level\u003c/code\u003e is not specified, a diagnostic console logger at \u0026quot;info\u0026quot; level will be setup.\u003c/li\u003e\n\u003cli\u003eAn invalid YAML config file will now result in a noop OTel SDK.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e:bug: Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(configuration): do not validate \u003ccode\u003eOTEL_CONFIG_FILE\u003c/code\u003e value before using it for file config \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6643\"\u003e#6643\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve how 'additionalProperties' in JSON schema is translated to TS types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6650\"\u003e#6650\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): remove stripMinItems and preprocessNullArrays from validation/parsing \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6657\"\u003e#6657\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve handling of enums in generated types \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6659\"\u003e#6659\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(configuration): improve the technique for removing '| null' on types the JSON Schema \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6662\"\u003e#6662\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(sampler-jaeger-remote): add missing axios dep \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6656\"\u003e#6656\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(exporter-prometheus): handle malformed URLs in Prometheus exporter request handler \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6674\"\u003e#6674\u003c/a\u003e \u003ca href=\"https://github.com/homanp\"\u003e\u003ccode\u003e@​homanp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/06ad0eaaecbd49f5ead871325f852cc2a3454079\"\u003e\u003ccode\u003e06ad0ea\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6703\"\u003e#6703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/38ca257e64ebd13f5603d5539f8a48d6d9232037\"\u003e\u003ccode\u003e38ca257\u003c/code\u003e\u003c/a\u003e feat(otlp-transformer): replace protobufjs metrics serialization with custom ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/experimental/v0.216.0...experimental/v0.218.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `@opentelemetry/semantic-conventions` from 1.40.0 to 1.41.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/releases\"\u003e@​opentelemetry/semantic-conventions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003esemconv/v1.41.1\u003c/h2\u003e\n\u003ch2\u003e1.41.1\u003c/h2\u003e\n\u003ch3\u003e:rocket: Features\u003c/h3\u003e\n\u003cp\u003eNote: Semantic Conventions v1.41.0 included \u003ca href=\"https://redirect.github.com/open-telemetry/semantic-conventions/issues/3705\"\u003ean issue\u003c/a\u003e that prevented publishing a \u0026quot;1.41.0\u0026quot; version of this package.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update semantic conventions to v1.41.1 \u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/pull/6695\"\u003e#6695\u003c/a\u003e \u003ca href=\"https://github.com/trentm\"\u003e\u003ccode\u003e@​trentm\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eSemantic Conventions v1.41.1: \u003ca href=\"https://github.com/open-telemetry/semantic-conventions/blob/main/CHANGELOG.md#v1410\"\u003echangelog v1.41.0\u003c/a\u003e | \u003ca href=\"https://github.com/open-telemetry/semantic-conventions/blob/release/v1.41.x/CHANGELOG.md#v1411\"\u003echangelog v1.41.1\u003c/a\u003e | \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/\"\u003elatest docs\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@opentelemetry/semantic-conventions\u003c/code\u003e (stable) changes: \u003cem\u003e8 added exports\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e@opentelemetry/semantic-conventions/incubating\u003c/code\u003e (unstable) changes: \u003cem\u003e2 exported values changed, 4 newly deprecated exports, 80 added exports\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStable changes in v1.41.1\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eATTR_DEPLOYMENT_ENVIRONMENT_NAME              // deployment.environment.name\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_DEVELOPMENT // \u0026quot;development\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_PRODUCTION  // \u0026quot;production\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_STAGING     // \u0026quot;staging\u0026quot;\r\n  DEPLOYMENT_ENVIRONMENT_NAME_VALUE_TEST        // \u0026quot;test\u0026quot;\r\n\u003cp\u003eATTR_OTEL_EVENT_NAME                          // otel.event.name\u003c/p\u003e\n\u003cp\u003eATTR_TELEMETRY_DISTRO_NAME                    // telemetry.distro.name\u003cbr /\u003e\nATTR_TELEMETRY_DISTRO_VERSION                 // telemetry.distro.version\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch4\u003eUnstable changes in v1.41.1\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eMETRIC_K8S_CONTAINER_CPU_LIMIT_UTILIZATION   // k8s.container.cpu.limit_utilization -\u0026gt; k8s.container.cpu.limit.utilization\r\nMETRIC_K8S_CONTAINER_CPU_REQUEST_UTILIZATION // k8s.container.cpu.request_utilization -\u0026gt; k8s.container.cpu.request.utilization\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cpre lang=\"js\"\u003e\u003ccode\u003eMETRIC_K8S_CONTAINER_CPU_LIMIT      // k8s.container.cpu.limit: Replaced by `k8s.container.cpu.limit.desired`.\r\nMETRIC_K8S_CONTAINER_CPU_REQUEST    // k8s.container.cpu.request: Replaced by `k8s.container.cpu.request.desired`.\r\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/013c60085b84351a4c1e4e4f79e3dd67c56661cd\"\u003e\u003ccode\u003e013c600\u003c/code\u003e\u003c/a\u003e chore: prepare next release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6699\"\u003e#6699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/b7a0c63bde39d7916fdb73cbb3d64cf1c93282c5\"\u003e\u003ccode\u003eb7a0c63\u003c/code\u003e\u003c/a\u003e feat(semantic-conventions): update semantic conventions to v1.41.1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6695\"\u003e#6695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/774143b2c6667c6537c000ab48ea5ce998278ca0\"\u003e\u003ccode\u003e774143b\u003c/code\u003e\u003c/a\u003e chore(renovate): add minimumReleaseAge to config (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6697\"\u003e#6697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/e0dafe0d9fadaccf7dd8d7b02dd85531356e2ac1\"\u003e\u003ccode\u003ee0dafe0\u003c/code\u003e\u003c/a\u003e fix(otlp-exporter-base): remove brackets from IPv6 hostname in HTTP transport...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/f804c93d1d6d903036b8bf38f8c3713dbbaf0360\"\u003e\u003ccode\u003ef804c93\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action digest to 68bde55 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6682\"\u003e#6682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/95e48e7afcc475ded350b95b43070c54591ecbbb\"\u003e\u003ccode\u003e95e48e7\u003c/code\u003e\u003c/a\u003e refactor(sdk-logs): alias \u003ccode\u003eLoggerProviderConfig\u003c/code\u003e to \u003ccode\u003eLoggerProviderOptions\u003c/code\u003e (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/907b627d9ada25844b0f06551ecd9bbda5c0ea4f\"\u003e\u003ccode\u003e907b627\u003c/code\u003e\u003c/a\u003e feat(sdk-node): allow startNodeSDK() without an arg (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6688\"\u003e#6688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/0d1526198fafe7f90078ff353103d0427e6c64d4\"\u003e\u003ccode\u003e0d15261\u003c/code\u003e\u003c/a\u003e docs: Add SIG meeting info and welcoming language (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6689\"\u003e#6689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/08932889fcccc2e3ccbcce1fca1544af384e145a\"\u003e\u003ccode\u003e0893288\u003c/code\u003e\u003c/a\u003e chore(sdk-node): restore skipped test cases (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-js/issues/6685\"\u003e#6685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/commit/3b5bfbdc05058e0aea90b8ba5e9c0133b5ef3ab0\"\u003e\u003ccode\u003e3b5bfbd\u003c/code\u003e\u003c/a\u003e feat(configuration): show all config validation errors, if there are multiple...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-js/compare/semconv/v1.40.0...semconv/v1.41.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `express-rate-limit` from 8.3.2 to 8.5.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/releases\"\u003eexpress-rate-limit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.5.2\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.5.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.5.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.4.1\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev8.4.0\u003c/h2\u003e\n\u003cp\u003eYou can view the changelog \u003ca href=\"https://express-rate-limit.mintlify.app/reference/changelog\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/97746932253e6c734569140e71357b2633eb1912\"\u003e\u003ccode\u003e9774693\u003c/code\u003e\u003c/a\u003e 8.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/0e94cc0176ca0e4960bd6992f1d105766fb9532c\"\u003e\u003ccode\u003e0e94cc0\u003c/code\u003e\u003c/a\u003e v8.5.2 changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/9a583c566aa5aaeb8b94312e9e9dbf711f89e7b3\"\u003e\u003ccode\u003e9a583c5\u003c/code\u003e\u003c/a\u003e feat: simplify IPv6 key generation (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/4f4b3fb78f96ac841a26122be1d82123271d7654\"\u003e\u003ccode\u003e4f4b3fb\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump lint-staged from 16.4.0 to 17.0.4 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/632\"\u003e#632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/3c1d6c57bddc0d7c9923611fd1ac1e17399a4865\"\u003e\u003ccode\u003e3c1d6c5\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump the development-dependencies group with 7 updates (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/631\"\u003e#631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/18884b671441b14dd0e9328a5ebedf51278a16c1\"\u003e\u003ccode\u003e18884b6\u003c/code\u003e\u003c/a\u003e chore(deps): bump basic-ftp from 5.2.0 to 5.3.1 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/630\"\u003e#630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/dacc9800e640b14c61cd8791ef59d75d0ac037a7\"\u003e\u003ccode\u003edacc980\u003c/code\u003e\u003c/a\u003e chore(deps): bump handlebars from 4.7.8 to 4.7.9 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/629\"\u003e#629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/486d0c608a95f344863302bb213fb09ea9ddf5de\"\u003e\u003ccode\u003e486d0c6\u003c/code\u003e\u003c/a\u003e chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/627\"\u003e#627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/50cc3f6345f603ac2fe4eb646edd7338b9a31fbb\"\u003e\u003ccode\u003e50cc3f6\u003c/code\u003e\u003c/a\u003e 8.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/commit/92c8e3efd87b9b9f89092b1f9c8c17ac134c1293\"\u003e\u003ccode\u003e92c8e3e\u003c/code\u003e\u003c/a\u003e chore: bump ip-address library to latest (\u003ca href=\"https://redirect.github.com/express-rate-limit/express-rate-limit/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/express-rate-limit/express-rate-limit/compare/v8.3.2...v8.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `helmet` from 8.1.0 to 8.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/helmetjs/helmet/blob/main/CHANGELOG.md\"\u003ehelmet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2.0 - 2026-05-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCross-Origin-Opener-Policy\u003c/code\u003e: support \u003ccode\u003enoopener-allow-popups\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/helmetjs/helmet/pull/522\"\u003e#522\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove error message when passing duplicate options\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/638e43becc81d970778b0bae31703193e295816d\"\u003e\u003ccode\u003e638e43b\u003c/code\u003e\u003c/a\u003e 8.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/fdf25a882da3cf0cd89343a6debdae725ec82515\"\u003e\u003ccode\u003efdf25a8\u003c/code\u003e\u003c/a\u003e Update changelog for 8.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/bd293b74d1bbf67e3eb17b1330f3339acca5d12c\"\u003e\u003ccode\u003ebd293b7\u003c/code\u003e\u003c/a\u003e Update devDependencies to latest versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/81ce5cc33ddc8ff1ad621d0d62ab0d10528a1f05\"\u003e\u003ccode\u003e81ce5cc\u003c/code\u003e\u003c/a\u003e Test supported Node versions on CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/807a888ded818a1857da5ada274c184cea05ef9e\"\u003e\u003ccode\u003e807a888\u003c/code\u003e\u003c/a\u003e Update to new URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/d4e0128652a05e99d1dc66df9c32a00e0db31597\"\u003e\u003ccode\u003ed4e0128\u003c/code\u003e\u003c/a\u003e Add direct link to FAQ\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/437d2eb81363ecb57633e5717e81e4055a431e3e\"\u003e\u003ccode\u003e437d2eb\u003c/code\u003e\u003c/a\u003e Bump actions/setup-node from 6.3.0 to 6.4.0 (\u003ca href=\"https://redirect.github.com/helmetjs/helmet/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/a6bd779566f3c23b92b287b9df0c6305c80885e8\"\u003e\u003ccode\u003ea6bd779\u003c/code\u003e\u003c/a\u003e Upgrade actions/setup-node to 6.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/1e09f5fd8aee6a02dd871712049e31cec3e6fc45\"\u003e\u003ccode\u003e1e09f5f\u003c/code\u003e\u003c/a\u003e Fix changelog typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/helmetjs/helmet/commit/d526f5c04578e8905b6a4c3e147b069927bad349\"\u003e\u003ccode\u003ed526f5c\u003c/code\u003e\u003c/a\u003e Bump Picomatch dev sub-dependency\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/helmetjs/helmet/compare/v8.1.0...v8.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 6.34.0 to 6.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-node/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.39.0\u003c/h2\u003e\n\u003ch2\u003e6.39.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.38.0...v6.39.0\"\u003ev6.38.0...v6.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-node/commit/33ea11fc5e7656990005cfb932584e0e646957d4\"\u003e33ea11f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/c210b09e71171b5aef844367f698ec4d8de95c2d\"\u003ec210b09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/92df9dc4a5519d2864ab7c25a3ee370806c9345d\"\u003e92df9dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-node/commit/c7c0f52df2278e40c9279d63a08c7a4bc55ea414\"\u003ec7c0f52\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e allow runtime fetch options (\u003ca href=\"https://github.com/openai/openai-node/commit/8f5003d3c13a0908ef80475a4f1c2e696e882101\"\u003e8f5003d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript:\u003c/strong\u003e upgrade tsc-multi so that it works with Node 26 (\u003ca href=\"https://github.com/openai/openai-node/commit/068f9c675bc02ffdacbef81103c5af858e03f971\"\u003e068f9c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-node/commit/9d43adb15e542ed10bd336078a309bc64bdb64f9\"\u003e9d43adb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e remove redundant File import (\u003ca href=\"https://github.com/openai/openai-node/commit/5465bbe74bdfe922eb0bc961b461656b4d002f5d\"\u003e5465bbe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.38.0\u003c/h2\u003e\n\u003ch2\u003e6.38.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.37.0...v6.38.0\"\u003ev6.37.0...v6.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-node/commit/423e838c498bd1b77f3b732cfc43c54fc5d261df\"\u003e423e838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev6.37.0\u003c/h2\u003e\n\u003ch2\u003e6.37.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.36.0...v6.37.0\"\u003ev6.36.0...v6.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add quantity field to admin organization usage responses (\u003ca href=\"https://github.com/openai/openai-node/commit/273a8f73e65839fb4d2ebc2a54ccc38383bd7517\"\u003e273a8f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results output option to responses (\u003ca href=\"https://github.com/openai/openai-node/commit/91c75e064f12946d3774cb182e5cd795000019ce\"\u003e91c75e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e launch realtime translate + update image 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/a296b661f0598ed001309d7deb693caa1596875c\"\u003ea296b66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/794b90513f5ca63bd95c6cf774722fa6aeae293d\"\u003e794b905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/69637293939580a9d20bd9274d86f23a012ffd87\"\u003e6963729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/f4b717702182adfc684270c0e7d5ff11d6c7a408\"\u003ef4b7177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-node/blob/master/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.39.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.38.0...v6.39.0\"\u003ev6.38.0...v6.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-node/commit/33ea11fc5e7656990005cfb932584e0e646957d4\"\u003e33ea11f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/c210b09e71171b5aef844367f698ec4d8de95c2d\"\u003ec210b09\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/92df9dc4a5519d2864ab7c25a3ee370806c9345d\"\u003e92df9dc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-node/commit/c7c0f52df2278e40c9279d63a08c7a4bc55ea414\"\u003ec7c0f52\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e allow runtime fetch options (\u003ca href=\"https://github.com/openai/openai-node/commit/8f5003d3c13a0908ef80475a4f1c2e696e882101\"\u003e8f5003d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypescript:\u003c/strong\u003e upgrade tsc-multi so that it works with Node 26 (\u003ca href=\"https://github.com/openai/openai-node/commit/068f9c675bc02ffdacbef81103c5af858e03f971\"\u003e068f9c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-node/commit/9d43adb15e542ed10bd336078a309bc64bdb64f9\"\u003e9d43adb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e remove redundant File import (\u003ca href=\"https://github.com/openai/openai-node/commit/5465bbe74bdfe922eb0bc961b461656b4d002f5d\"\u003e5465bbe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.38.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.37.0...v6.38.0\"\u003ev6.37.0...v6.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-node/commit/423e838c498bd1b77f3b732cfc43c54fc5d261df\"\u003e423e838\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.37.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-node/compare/v6.36.0...v6.37.0\"\u003ev6.36.0...v6.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add quantity field to admin organization usage responses (\u003ca href=\"https://github.com/openai/openai-node/commit/273a8f73e65839fb4d2ebc2a54ccc38383bd7517\"\u003e273a8f7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results output option to responses (\u003ca href=\"https://github.com/openai/openai-node/commit/91c75e064f12946d3774cb182e5cd795000019ce\"\u003e91c75e0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e launch realtime translate + update image 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/a296b661f0598ed001309d7deb693caa1596875c\"\u003ea296b66\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/794b90513f5ca63bd95c6cf774722fa6aeae293d\"\u003e794b905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-node/commit/69637293939580a9d20bd9274d86f23a012ffd87\"\u003e6963729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-node/commit/f4b717702182adfc684270c0e7d5ff11d6c7a408\"\u003ef4b7177\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-node/commit/4fe8469a7c1f892d586df375a449f6bd0e318b15\"\u003e4fe8469\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p...\n\n_Description has been truncated_","html_url":"https://github.com/REMEDiSSecurity/VulnRap.com/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/REMEDiSSecurity%2FVulnRap.com/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"1.6.2","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-05-20T06:57:52.000Z","version_change":"1.6.2 → 1.6.3","issue":{"uuid":"4483956025","node_id":"PR_kwDODdTws87dZdx6","number":3229,"state":"open","title":"Bump the bundler group across 1 directory with 120 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-20T06:57:52.000Z","updated_at":"2026-05-27T04:33:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":120,"packages":[{"name":"bootsnap","old_version":"1.18.6","new_version":"1.24.5","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"4.9.4","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"govuk-components","old_version":"5.11.3","new_version":"6.2.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"haml-rails","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/haml/haml-rails"},{"name":"oauth2","old_version":"2.0.17","new_version":"2.0.20","repository_url":"https://github.com/ruby-oauth/oauth2"},{"name":"omniauth-rails_csrf_protection","old_version":"1.0.2","new_version":"2.0.1","repository_url":"https://github.com/cookpad/omniauth-rails_csrf_protection"},{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"prometheus_exporter","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/discourse/prometheus_exporter"},{"name":"puma","old_version":"7.0.4","new_version":"8.0.2","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.3","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"haml_lint","old_version":"0.66.0","new_version":"0.73.0","repository_url":"https://github.com/sds/haml-lint"},{"name":"rubocop","old_version":"1.80.2","new_version":"1.86.2","repository_url":"https://github.com/rubocop/rubocop"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"pry-byebug","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/deivid-rodriguez/pry-byebug"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.5","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"axe-core-rspec","old_version":"4.10.3","new_version":"4.11.3","repository_url":"https://github.com/dequelabs/axe-core-gems"},{"name":"brakeman","old_version":"7.1.0","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"i18n-tasks","old_version":"1.0.15","new_version":"1.1.2","repository_url":"https://github.com/glebm/i18n-tasks"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-capybara","old_version":"2.22.1","new_version":"2.23.0","repository_url":"https://github.com/rubocop/rubocop-capybara"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-performance","old_version":"1.26.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.35.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"},{"name":"selenium-webdriver","old_version":"4.35.0","new_version":"4.44.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"vcr","old_version":"6.3.1","new_version":"6.4.0","repository_url":"https://github.com/vcr/vcr"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"pry","old_version":"0.15.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.4.0","new_version":"4.6.0","repository_url":"https://github.com/rails/spring"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.6.4","repository_url":"https://github.com/ruby/net-imap"},{"name":"factory_bot","old_version":"6.5.5","new_version":"6.6.0","repository_url":"https://github.com/thoughtbot/factory_bot"},{"name":"faraday-follow_redirects","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/tisba/faraday-follow-redirects"},{"name":"json-jwt","old_version":"1.16.7","new_version":"1.17.0","repository_url":"https://github.com/nov/json-jwt"},{"name":"openid_connect","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/nov/openid_connect"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 44 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.24.5` |\n| [devise](https://github.com/heartcombo/devise) | `4.9.4` | `5.0.4` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `6.2.0` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `6.1.0` |\n| [haml-rails](https://github.com/haml/haml-rails) | `2.1.0` | `3.0.0` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.17` | `2.0.20` |\n| [omniauth-rails_csrf_protection](https://github.com/cookpad/omniauth-rails_csrf_protection) | `1.0.2` | `2.0.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.2` | `1.6.3` |\n| [prometheus_exporter](https://github.com/discourse/prometheus_exporter) | `2.3.0` | `2.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.4` | `8.0.2` |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [haml_lint](https://github.com/sds/haml-lint) | `0.66.0` | `0.73.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.2` | `1.86.2` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) | `3.11.0` | `3.12.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.5` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.10.3` | `4.11.3` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `7.1.0` | `8.0.4` |\n| [i18n-tasks](https://github.com/glebm/i18n-tasks) | `1.0.15` | `1.1.2` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-capybara](https://github.com/rubocop/rubocop-capybara) | `2.22.1` | `2.23.0` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.35.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.35.0` | `4.44.0` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [vcr](https://github.com/vcr/vcr) | `6.3.1` | `6.4.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [pry](https://github.com/pry/pry) | `0.15.2` | `0.16.0` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.4.0` | `4.6.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.6.4` |\n| [factory_bot](https://github.com/thoughtbot/factory_bot) | `6.5.5` | `6.6.0` |\n| [faraday-follow_redirects](https://github.com/tisba/faraday-follow-redirects) | `0.3.0` | `0.5.0` |\n| [json-jwt](https://github.com/nov/json-jwt) | `1.16.7` | `1.17.0` |\n| [openid_connect](https://github.com/nov/openid_connect) | `2.3.1` | `2.4.0` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n\n\nUpdates `bootsnap` from 1.18.6 to 1.24.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.5\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eNo longer load the config file by default when setup is done manually. This is so cli applications like homebrew\ndon't mistakenly load another app's boostnap config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d6ca0505280dbba4b18625793a529acd8c8f07e3\"\u003e\u003ccode\u003ed6ca050\u003c/code\u003e\u003c/a\u003e Release 1.24.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/579aa0e3bf0b11ceb102a9042e63c32f573dcffb\"\u003e\u003ccode\u003e579aa0e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/552\"\u003e#552\u003c/a\u003e from byroot/fix-bootsnap-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2884e8908f4c1b20a32c83189de23c5d5b04998a\"\u003e\u003ccode\u003e2884e89\u003c/code\u003e\u003c/a\u003e Only load config file is directed to by \u003ccode\u003e.setup\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/103a92bc6fd05c7c97abfd048c8fc5cb0bd05757\"\u003e\u003ccode\u003e103a92b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/551\"\u003e#551\u003c/a\u003e from byroot/enable-fstr-global\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/33c927dc61e8ea868f1dcc681df5275d173b71fb\"\u003e\u003ccode\u003e33c927d\u003c/code\u003e\u003c/a\u003e Update compiler options when global options change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/122db7fdaea8a05fd54a8d23df8946bed43d9f54\"\u003e\u003ccode\u003e122db7f\u003c/code\u003e\u003c/a\u003e Simplify \u003ccode\u003eenable_frozen_string_literal(app_only: false)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.24.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 4.9.4 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0.rc\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.0 - 2026-01-23\u003c/h3\u003e\n\u003cp\u003eno changes\u003c/p\u003e\n\u003ch3\u003e5.0.0.rc - 2025-12-31\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebreaking changes\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Ruby \u0026lt; 2.7\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Rails \u0026lt; 7.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003e:bypass\u003c/code\u003e option from \u003ccode\u003esign_in\u003c/code\u003e helper, use \u003ccode\u003ebypass_sign_in\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003edevise_error_messages!\u003c/code\u003e helper, use \u003ccode\u003erender \u0026quot;devise/shared/error_messages\u0026quot;, resource: resource\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003escope\u003c/code\u003e second argument from \u003ccode\u003esign_in(resource, :admin)\u003c/code\u003e controller test helper, use \u003ccode\u003esign_in(resource, scope: :admin)\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::TestHelpers\u003c/code\u003e, use \u003ccode\u003eDevise::Test::ControllerHelpers\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5598\"\u003e#5598\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise.activerecord51?\u003c/code\u003e method.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSecretKeyFinder\u003c/code\u003e and use \u003ccode\u003eapp.secret_key_base\u003c/code\u003e as the default secret key for \u003ccode\u003eDevise.secret_key\u003c/code\u003e if a custom \u003ccode\u003eDevise.secret_key\u003c/code\u003e is not provided.\u003c/p\u003e\n\u003cp\u003eThis is potentially a breaking change because Devise previously used the following order to find a secret key:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapp.credentials.secret_key_base \u0026gt; app.secrets.secret_key_base \u0026gt; application.config.secret_key_base \u0026gt; application.secret_key_base\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, it always uses \u003ccode\u003eapplication.secret_key_base\u003c/code\u003e. Make sure you're using the same secret key after the upgrade; otherwise, previously generated tokens for \u003ccode\u003erecoverable\u003c/code\u003e, \u003ccode\u003elockable\u003c/code\u003e, and \u003ccode\u003econfirmable\u003c/code\u003e will be invalid.\n\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5645\"\u003e#5645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password instructions button label on devise view from \u003ccode\u003eSend me reset password instructions\u003c/code\u003e to \u003ccode\u003eSend me password reset instructions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5515\"\u003e#5515\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange \u003ccode\u003e\u0026lt;br\u0026gt;\u003c/code\u003e tags separating form elements to wrapping them in \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tags \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003e#5494\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e with \u003ccode\u003e[data-turbo-temporary]\u003c/code\u003e on \u003ccode\u003edevise/shared/error_messages\u003c/code\u003e partial. This has been \u003ca href=\"https://github.com/hotwired/turbo/releases/tag/v7.3.0\"\u003edeprecated by Turbo since v7.3.0 (released on Mar 1, 2023)\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v4.9.4...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-components` from 5.11.3 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-components/releases\"\u003egovuk-components's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease version 6.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to ViewComponent 4.9.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/639\"\u003e#639\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate supported Ruby, Rails and ViewComponent versions\u003c/li\u003e\n\u003cli\u003eSupport GOV.UK Design System version 6.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport GOV.UK Design System version 6.0.0\u003c/li\u003e\n\u003cli\u003eremove the service name and navigation items from the header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate the govuk_tag colours (magenta replaces pink and teal replaces turquoise) \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport ViewComponent version 4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eThe service name and navigation items have been removed from the header. Instead, passing a block of HTML to the header will render it in the \u003ccode\u003e.govuk-header__container\u003c/code\u003e. You'll need to add your own styles to make things render in the right place. There are examples \u003ca href=\"https://govuk-components.x-govuk.org/components/header/#adding-more-content-to-the-header\"\u003ein the guide\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/DFE-Digital/register-early-career-teachers-public/pull/2327\"\u003ein this PR\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\u003cbr /\u003e\nThe GOV.UK Header Component has changed significantly, \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-beta.1\"\u003esee the upstream release notes for more info\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-rc.0\"\u003eGOV.UK frontend 6.0.0-rc0\u003c/a\u003e \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove navigation items and service name from GOV.UK Header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ViewComponent support to 4.3 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/628\"\u003e#628\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug in the service nav where \u003ccode\u003earia-current=\u0026quot;true\u0026quot;\u003c/code\u003e was showing where it shouldn't have been. Thanks \u003ca href=\"https://github.com/DavidBiddle\"\u003e\u003ccode\u003e@​DavidBiddle\u003c/code\u003e\u003c/a\u003e for diagnosing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/621\"\u003e#621\u003c/a\u003e) and fixing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/622\"\u003e#622\u003c/a\u003e) this :heart:\u003c/li\u003e\n\u003cli\u003eChange some links in the docs from netlify.app to x-govuk.org\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8.1. Thanks \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003eAdd Netlify link to the footer to qualify for Netlify's open source plan which we're using for the \u003ca href=\"https://govuk-components.x-govuk.org/\"\u003enew guide domain\u003c/a\u003e  ccb566fd4cd1ed5a8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/809b3f600955bd4ece674bf48d2d771316b26984\"\u003e\u003ccode\u003e809b3f6\u003c/code\u003e\u003c/a\u003e Release version 6.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/eaa67a7450ce4073f7bdf4eb98e52da0505446d0\"\u003e\u003ccode\u003eeaa67a7\u003c/code\u003e\u003c/a\u003e Update dependency on view_component (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/54a40cab35294db87c786dad1ff51cc496e6c0be\"\u003e\u003ccode\u003e54a40ca\u003c/code\u003e\u003c/a\u003e Update dependency on view_component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d7ef30fd9e4e6417a956feb14b79997c099c74e9\"\u003e\u003ccode\u003ed7ef30f\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.2.0 to = 5.2.1 (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/a7d146ecdbd2f41e5a12460aacde76c7dbf3e4c9\"\u003e\u003ccode\u003ea7d146e\u003c/code\u003e\u003c/a\u003e Fix heredoc indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c8af345df5348cad4cccf3b5f4dfca7619025b25\"\u003e\u003ccode\u003ec8af345\u003c/code\u003e\u003c/a\u003e Update rubocop-govuk requirement from = 5.2.0 to = 5.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/8a8e3811011b03a0b313170b1beb6aa3ad26cd5f\"\u003e\u003ccode\u003e8a8e381\u003c/code\u003e\u003c/a\u003e Change slot example on view component page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d0a5d8d2becbbee616a93c9160c457edc053f43d\"\u003e\u003ccode\u003ed0a5d8d\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9b10ed070a94ea6bee9e477cb04da0bf8e987eb5\"\u003e\u003ccode\u003e9b10ed0\u003c/code\u003e\u003c/a\u003e Various version bumps (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9cfa5a8ab3477672b24aa2c5c0e3ffaf49b5e25f\"\u003e\u003ccode\u003e9cfa5a8\u003c/code\u003e\u003c/a\u003e Bump supported ViewComponent to 4.6.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk_design_system_formbuilder` from 5.11.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/releases\"\u003egovuk_design_system_formbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to govuk-frontend 6.1.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport defining text options for file upload component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e, thank you \u003ca href=\"https://github.com/stephencdaly\"\u003e\u003ccode\u003e@​stephencdaly\u003c/code\u003e\u003c/a\u003e for contributing this\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to govuk-frontend 5.13.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evarious minor version bumps\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/5cbe8f6e79a805327b72f09ee191cd58f09587fc\"\u003e\u003ccode\u003e5cbe8f6\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/3b721e9ba3e3cf1a685cb3dd3dbca3aeb9604150\"\u003e\u003ccode\u003e3b721e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e from x-govuk/govuk-frontend-6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1169b60d51f775aed34960bb636106efa2042ffd\"\u003e\u003ccode\u003e1169b60\u003c/code\u003e\u003c/a\u003e Update supported versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/81733638cc0ceace44e85b2fc9ef0393362bef01\"\u003e\u003ccode\u003e8173363\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c96270cb8cc861c40d0a6155355cbdfc8f9831eb\"\u003e\u003ccode\u003ec96270c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/617\"\u003e#617\u003c/a\u003e from x-govuk/fix-guide-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d6f4e390ac6f51b7120a3f3efa73669f74ed9f50\"\u003e\u003ccode\u003ed6f4e39\u003c/code\u003e\u003c/a\u003e Reqire 'active_model' in guide perosn class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b156fe78df8f74dc1574b16449d0515a9ddcd174\"\u003e\u003ccode\u003eb156fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e from stephencdaly/add-options-to-file-upload-for-java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1c573ccc92b156684ee56a02329c7ca3bb3e7947\"\u003e\u003ccode\u003e1c573cc\u003c/code\u003e\u003c/a\u003e Add example to guide for setting custom text for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/9ed0f9573b7f015f79ccbf9c67a9e5dd91c8ba58\"\u003e\u003ccode\u003e9ed0f95\u003c/code\u003e\u003c/a\u003e Support defining text options for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/a12d0c63e346946540d5cb8af44128c04fc55f8e\"\u003e\u003ccode\u003ea12d0c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/611\"\u003e#611\u003c/a\u003e from x-govuk/dependabot/bundler/slim_lint-tw-0.34.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `haml-rails` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/6c7c8ca772b2c8d36b58278c2c09498385979f85\"\u003e\u003ccode\u003e6c7c8ca\u003c/code\u003e\u003c/a\u003e Version 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e364abbc6a54f84b344c1ec846d683f927e1ae59\"\u003e\u003ccode\u003ee364abb\u003c/code\u003e\u003c/a\u003e Just use the newest one\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/30005dc31f9926dac33ba776389e9456e068b20f\"\u003e\u003ccode\u003e30005dc\u003c/code\u003e\u003c/a\u003e [CI] uses: actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e639b11fe1571cdc1e8bb48143d13a63110e09e1\"\u003e\u003ccode\u003ee639b11\u003c/code\u003e\u003c/a\u003e Properly state the supported version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/3e1b70552ca28a42a4741d3bfd3cf7cf379c6486\"\u003e\u003ccode\u003e3e1b705\u003c/code\u003e\u003c/a\u003e frozen_string_literal: ❄️\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/2c51fd5848e6d36e36f831cf827578003525d08f\"\u003e\u003ccode\u003e2c51fd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haml/haml-rails/issues/197\"\u003e#197\u003c/a\u003e from amatsuda/rails_versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/9f4703ddff0644ba52529c5cf41c1624829b16a7\"\u003e\u003ccode\u003e9f4703d\u003c/code\u003e\u003c/a\u003e Fall back to the newest templates by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/f0a9ff88ef682af3d6023e1d453ed978597abd72\"\u003e\u003ccode\u003ef0a9ff8\u003c/code\u003e\u003c/a\u003e Rails 5.1 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/852cf01c9831ee09049f7b990a648d441c876093\"\u003e\u003ccode\u003e852cf01\u003c/code\u003e\u003c/a\u003e Rails 5.2 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/8bb0351a85b83e81d1b27f18fdda17a77961c1af\"\u003e\u003ccode\u003e8bb0351\u003c/code\u003e\u003c/a\u003e Rails 6.0 scaffold templates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haml/haml-rails/compare/v2.1.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.17 to 2.0.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.19...v2.0.20\"\u003e2.0.20\u003c/a\u003e - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.20\"\u003ev2.0.20\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/backers/badge.svg?style=flat\" alt=\"OpenCollective Backers\" /\u003e\u003c/a\u003e \u003ca href=\"https://opencollective.com/ruby-oauth#sponsor\"\u003e\u003cimg src=\"https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat\" alt=\"OpenCollective Sponsors\" /\u003e\u003c/a\u003e \u003ca href=\"https://github.com/sponsors/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social\u0026amp;logo=github\" alt=\"Sponsor Me on Github\" /\u003e\u003c/a\u003e \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[\u003cimg src=\"https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat\" alt=\"Buy me a coffee\" /\u003e][🖇buyme] \u003ca href=\"https://polar.sh/pboling\"\u003e\u003cimg src=\"https://img.shields.io/badge/polar-donate-a51611.svg?style=flat\" alt=\"Donate on Polar\" /\u003e\u003c/a\u003e \u003ca href=\"https://ko-fi.com/O5O86SNP4\"\u003e\u003cimg src=\"https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts at ko-fi.com\" /\u003e\u003c/a\u003e \u003ca href=\"https://patreon.com/galtzo\"\u003e\u003cimg src=\"https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat\" alt=\"Donate to my FLOSS efforts using Patreon\" /\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.20] - 2026-05-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.20][2.0.20t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 99.62% -- 525/527 lines in 15 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 98.88% -- 176/178 branches in 15 files\u003c/li\u003e\n\u003cli\u003e88.35% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth2::VERSION (Traditional Constant Location)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eauth-sanitizer v0.1.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/721\"\u003egh!721\u003c/a\u003e Load \u003ccode\u003eauth-sanitizer\u003c/code\u003e through an internal isolated loader so requiring \u003ccode\u003eoauth2\u003c/code\u003e does not add top-level \u003ccode\u003eAuth\u003c/code\u003e or \u003ccode\u003eAuthSanitizer\u003c/code\u003e constants that may collide with downstream applications by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003ch2\u003e[2.0.19] - 2026-05-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.19][2.0.19t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 515/515 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 174/174 branches in 14 files\u003c/li\u003e\n\u003cli\u003e89.11% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_label]\u003c/code\u003e to configure the placeholder used for filtered sensitive values in inspected objects and debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Add \u003ccode\u003eOAuth2.config[:filtered_debug_keys]\u003c/code\u003e to configure which key names have their values redacted from debug logging output by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Make inspect-time and debug-log filters snapshot their configuration at initialization time rather than tracking later config changes by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[gh!714][gh!714]Refactor sensitive-value filtering to use \u003ccode\u003eauth-sanitizer\u003c/code\u003e while preserving \u003ccode\u003eOAuth2::FilteredAttributes\u003c/code\u003e as a permanent API alias by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove the internal \u003ccode\u003eOAuth2::ThingFilter\u003c/code\u003e and \u003ccode\u003eOAuth2::SanitizedLogger\u003c/code\u003e implementations now provided by \u003ccode\u003eauth-sanitizer\u003c/code\u003e by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/707\"\u003egh!707\u003c/a\u003e Redact sensitive values from debug logging output, including Authorization headers and common token/secret fields in headers, query strings, form bodies, and JSON payloads by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eNOTE: debug logging has always been, and remains, opt-in. It is turned off by default.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/e2d509705db6091c8d5f27c31e29c58e39e51c7c\"\u003e\u003ccode\u003ee2d5097\u003c/code\u003e\u003c/a\u003e 🔧 :nocov: for unreachable error states\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/30650b2e1cb743e3263181e8b8a32c57ef33b9fb\"\u003e\u003ccode\u003e30650b2\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/23f2855f1b0053a38b6b5df00c870d83db761c31\"\u003e\u003ccode\u003e23f2855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/721\"\u003e#721\u003c/a\u003e from ruby-oauth/fix/top-level-namespace-pollution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/5e4c98831ecb68ec446fcc99be0af40e6e68490c\"\u003e\u003ccode\u003e5e4c988\u003c/code\u003e\u003c/a\u003e Fix RuboCop Gradual offenses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/89397f699bd6903c5ac3a9927d1743984a946dc5\"\u003e\u003ccode\u003e89397f6\u003c/code\u003e\u003c/a\u003e Constrain auth-sanitizer loader lookup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/8e71e19890fe486d7d260eb29ec67eb5ac1e75d0\"\u003e\u003ccode\u003e8e71e19\u003c/code\u003e\u003c/a\u003e 📝 CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/6082a21c5628b270953dc9edb0af57dafb36e194\"\u003e\u003ccode\u003e6082a21\u003c/code\u003e\u003c/a\u003e ⬆️ snaky_hash, faraday-net_http, zeitwerk, bundler-audit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/350da4214e9285fd88e21a9859d049dc8e954a25\"\u003e\u003ccode\u003e350da42\u003c/code\u003e\u003c/a\u003e Avoid auth-sanitizer top-level namespaces\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/0bc19030c2226ab16fc237b547e95d90ed8fa2e9\"\u003e\u003ccode\u003e0bc1903\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/719\"\u003e#719\u003c/a\u003e from step-security-bot/chore/GHA-182236-stepsecurity-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/148d716337a530494895091fe3b4359a410212a5\"\u003e\u003ccode\u003e148d716\u003c/code\u003e\u003c/a\u003e Switch pre-commit hook to rubocop_gradual\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-rails_csrf_protection` from 1.0.2 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/releases\"\u003eomniauth-rails_csrf_protection's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix an issue with configuration delegation in Rails \u0026lt; 8.1 (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/26\"\u003e#26\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor more details, please see 1a0d39099957675f549e1f23c836f57b99b09a00.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop using deprecated \u003ccode\u003eActiveSupport::Configurable\u003c/code\u003e when this gem is running against Action Pack version 8.1 and later (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/23\"\u003e#23\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c4f53d72e6a278c02f1a6d294c4f8004354ee0b7\"\u003e\u003ccode\u003ec4f53d7\u003c/code\u003e\u003c/a\u003e Bump to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/1a0d39099957675f549e1f23c836f57b99b09a00\"\u003e\u003ccode\u003e1a0d390\u003c/code\u003e\u003c/a\u003e Fix an issue with configuration delegation in Rails \u0026lt; 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/bc315e1b09fbf6a363d5293067b42675f020fc4c\"\u003e\u003ccode\u003ebc315e1\u003c/code\u003e\u003c/a\u003e Properly silence Rails 8.0.x warning message in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/23483750b4a0a803347e02778b975886ecb82875\"\u003e\u003ccode\u003e2348375\u003c/code\u003e\u003c/a\u003e Bump to 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c283d1d159a292c5fce8ed1a2f5997f6bde209f5\"\u003e\u003ccode\u003ec283d1d\u003c/code\u003e\u003c/a\u003e Update README to add OmniAuth's built-in solution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/2cf722bd7cc310009ee626cce28a7ea52b47f649\"\u003e\u003ccode\u003e2cf722b\u003c/code\u003e\u003c/a\u003e Add workaround for deprecated AS::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/431597eb44ff8ae0bf9802d1a1dc85ebb8d2cfa3\"\u003e\u003ccode\u003e431597e\u003c/code\u003e\u003c/a\u003e Silence \u003ccode\u003e#to_time\u003c/code\u003e warning in Rails 8.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/5e9c8a27b0ccac54ca3bec7f3b49d43ddefdc4d6\"\u003e\u003ccode\u003e5e9c8a2\u003c/code\u003e\u003c/a\u003e Print Ruby version in the test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/3e62c0572bf5c9796fff5fe197f07d5ed172a7c5\"\u003e\u003ccode\u003e3e62c05\u003c/code\u003e\u003c/a\u003e Remove unnecessary logger gem entry in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/f9810a5886d692312c6d015914fdad00cf7f41b2\"\u003e\u003ccode\u003ef9810a5\u003c/code\u003e\u003c/a\u003e Update build matrix and fix build errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/compare/v1.0.2...v2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus_exporter` from 2.3.0 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/discourse/prometheus_exporter/blob/main/CHANGELOG\"\u003eprometheus_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2025-11-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: get controller full path instead of controller name - Alex Platteeuw\u003c/li\u003e\n\u003cli\u003eFEATURE: Secure PrometheusExporter scraping with SSL - Nicolas Rodriquez\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/15e9d4783db8267fb3b0c48e5464ec4c1ae58c00\"\u003e\u003ccode\u003e15e9d47\u003c/code\u003e\u003c/a\u003e version bump (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bd3817744bb5011aed6c669696ed957c23cd3fe\"\u003e\u003ccode\u003e4bd3817\u003c/code\u003e\u003c/a\u003e fix: get controller full path instead of controller name (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bb4fa333386b166a745df92be5620b11be3872a\"\u003e\u003ccode\u003e4bb4fa3\u003c/code\u003e\u003c/a\u003e Secure PrometheusExporter scraping with SSL (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/b10933453f0952cd17d143487c5adc8bb74b492a\"\u003e\u003ccode\u003eb109334\u003c/code\u003e\u003c/a\u003e Add connect_timeout: settings to PrometheusExporter::Client (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/discourse/prometheus_exporter/compare/v2.3.0...v2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.0.4 to 8.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity advisories\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-qpgp-93vx-g8v8\"\u003eCVE-2026-47736 / GHSA-qpgp-93vx-g8v8\u003c/a\u003e: Puma PROXY Protocol v1 Parser Allows Remote Memory Exhaustion\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/security/advisories/GHSA-2vqw-3mp8-cgmx\"\u003eCVE-2026-47737 / GHSA-2vqw-3mp8-cgmx\u003c/a\u003e: Puma PROXY Protocol v1 Accepts Repeated Protocol Headers on Persistent Connections\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.2 / 2026-05-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBugfixes\n\u003cul\u003e\n\u003cli\u003eAnchor PROXY protocol v1 regex to string start and enforce max line length to prevent injection via crafted request bodies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eParse PROXY protocol header only on the first request per connection to prevent spoofing on keep-alive connections (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeatures\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/8085b75e79e3f7f1a96e5b488d74a71f62edd24d\"\u003e\u003ccode\u003e8085b75\u003c/code\u003e\u003c/a\u003e Release v8.0.2 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3945\"\u003e#3945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/439c6136d9c2275721b7864db3ee78af7c80889f\"\u003e\u003ccode\u003e439c613\u003c/code\u003e\u003c/a\u003e 8.0.2 backport (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3944\"\u003e#3944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.4...v8.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.3 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccod...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3229","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3229","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3229/packages"}},{"old_version":"1.6.1","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-05-16T06:23:56.000Z","version_change":"1.6.1 → 1.6.3","issue":{"uuid":"4458911143","node_id":"PR_kwDOCSVaMM7cKhYW","number":7367,"state":"closed","title":"build(deps): bump the minor-and-patch group across 1 directory with 67 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-19T03:21:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-16T06:23:56.000Z","updated_at":"2026-05-19T03:21:26.000Z","time_to_close":248248,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":67,"packages":[{"name":"aws-actionmailer-ses","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/aws/aws-actionmailer-ses-ruby"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"kt-paperclip","old_version":"7.2.2","new_version":"7.3.0","repository_url":"https://github.com/kreeti/kt-paperclip"},{"name":"omniauth","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/omniauth/omniauth"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"rails","old_version":"8.0.5","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"terser","old_version":"1.2.6","new_version":"1.2.7","repository_url":"https://github.com/ahorek/terser-ruby"},{"name":"jbuilder","old_version":"2.14.1","new_version":"2.15.0","repository_url":"https://github.com/rails/jbuilder"},{"name":"devise","old_version":"5.0.3","new_version":"5.0.4","repository_url":"https://github.com/heartcombo/devise"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.5","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"geocoder","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/alexreisner/geocoder"},{"name":"pundit","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/varvet/pundit"},{"name":"ahoy_matey","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/ankane/ahoy"},{"name":"i18n-js","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/fnando/i18n-js"},{"name":"pg","old_version":"1.6.1","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.24.4","repository_url":"https://github.com/rails/bootsnap"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"flipper-redis","old_version":"1.3.6","new_version":"1.4.2","repository_url":"https://github.com/flippercloud/flipper"},{"name":"friendly_id","old_version":"5.5.1","new_version":"5.7.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rails-i18n","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/svenfuchs/rails-i18n"},{"name":"recaptcha","old_version":"5.20.1","new_version":"5.21.2","repository_url":"https://github.com/ambethia/recaptcha"},{"name":"strong_migrations","old_version":"2.5.0","new_version":"2.8.0","repository_url":"https://github.com/ankane/strong_migrations"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-performance","old_version":"1.25.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.35.0","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.6.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rbs_rails","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/pocke/rbs_rails"},{"name":"json-schema","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/voxpupuli/json-schema"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"undercover","old_version":"0.8.0","new_version":"0.8.5","repository_url":"https://github.com/grodowski/undercover"},{"name":"capybara-playwright-driver","old_version":"0.5.7","new_version":"0.5.9","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"lookbook","old_version":"2.3.13","new_version":"2.3.14","repository_url":"https://github.com/lookbook-hq/lookbook"},{"name":"oj","old_version":"3.16.11","new_version":"3.17.1","repository_url":"https://github.com/ohler55/oj"},{"name":"rack-attack","old_version":"6.7.0","new_version":"6.8.0","repository_url":"https://github.com/rack/rack-attack"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.222.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-sdk","old_version":"1.8.1","new_version":"1.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-exporter-otlp","old_version":"0.30.0","new_version":"0.34.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.8.0","new_version":"0.12.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.12.0","new_version":"2.16.0","repository_url":"https://github.com/Shopify/maintenance_tasks"},{"name":"stackprof","old_version":"0.2.27","new_version":"0.2.28","repository_url":"https://github.com/tmm1/stackprof"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"},{"name":"avo","old_version":"3.31.0","new_version":"3.31.2","repository_url":"https://github.com/avo-hq/avo"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 48 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-actionmailer-ses](https://github.com/aws/aws-actionmailer-ses-ruby) | `1.0.0` | `1.1.0` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [kt-paperclip](https://github.com/kreeti/kt-paperclip) | `7.2.2` | `7.3.0` |\n| [omniauth](https://github.com/omniauth/omniauth) | `2.1.3` | `2.1.4` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.2` |\n| [rails](https://github.com/rails/rails) | `8.0.5` | `8.1.3` |\n| [terser](https://github.com/ahorek/terser-ruby) | `1.2.6` | `1.2.7` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.14.1` | `2.15.0` |\n| [devise](https://github.com/heartcombo/devise) | `5.0.3` | `5.0.4` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.5` |\n| [geocoder](https://github.com/alexreisner/geocoder) | `1.8.5` | `1.8.6` |\n| [pundit](https://github.com/varvet/pundit) | `2.5.0` | `2.5.2` |\n| [ahoy_matey](https://github.com/ankane/ahoy) | `5.4.0` | `5.5.0` |\n| [i18n-js](https://github.com/fnando/i18n-js) | `4.2.3` | `4.2.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.1` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.24.4` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [flipper-redis](https://github.com/flippercloud/flipper) | `1.3.6` | `1.4.2` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.5.1` | `5.7.0` |\n| [rails-i18n](https://github.com/svenfuchs/rails-i18n) | `8.0.2` | `8.1.0` |\n| [recaptcha](https://github.com/ambethia/recaptcha) | `5.20.1` | `5.21.2` |\n| [strong_migrations](https://github.com/ankane/strong_migrations) | `2.5.0` | `2.8.0` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.5.0` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.25.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.35.0` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.6.0` | `3.9.0` |\n| [rbs_rails](https://github.com/pocke/rbs_rails) | `0.12.1` | `0.13.1` |\n| [json-schema](https://github.com/voxpupuli/json-schema) | `6.0.0` | `6.2.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [undercover](https://github.com/grodowski/undercover) | `0.8.0` | `0.8.5` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.7` | `0.5.9` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [lookbook](https://github.com/lookbook-hq/lookbook) | `2.3.13` | `2.3.14` |\n| [oj](https://github.com/ohler55/oj) | `3.16.11` | `3.17.1` |\n| [rack-attack](https://github.com/rack/rack-attack) | `6.7.0` | `6.8.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.222.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-ruby) | `1.8.1` | `1.12.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-ruby) | `0.30.0` | `0.34.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.8.0` | `0.12.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.12.0` | `2.16.0` |\n| [stackprof](https://github.com/tmm1/stackprof) | `0.2.27` | `0.2.28` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n| [avo](https://github.com/avo-hq/avo) | `3.31.0` | `3.31.2` |\n\n\nUpdates `aws-actionmailer-ses` from 1.0.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/releases\"\u003eaws-actionmailer-ses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.1.0 - 2026-03-31\u003c/h2\u003e\n\u003cp\u003eTag release v1.1.0\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/blob/main/CHANGELOG.md\"\u003eaws-actionmailer-ses's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/87d57bae1d2da68729c639da957c89b4f14eef02\"\u003e\u003ccode\u003e87d57ba\u003c/code\u003e\u003c/a\u003e Bumped version to v1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/55de5a801bc2f819acda6521fa7efab8e72829bb\"\u003e\u003ccode\u003e55de5a8\u003c/code\u003e\u003c/a\u003e Allow precreated SESv2 client (issue \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/0e7a21034d43615e7765bb96c84f09f43fe80e1f\"\u003e\u003ccode\u003e0e7a210\u003c/code\u003e\u003c/a\u003e Scope down GitHub token permissions for ci.yml (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/c2b91df4f58ed7da035c953ecfd4f9847da46ebb\"\u003e\u003ccode\u003ec2b91df\u003c/code\u003e\u003c/a\u003e Update CI to include 3.4 (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/aab2974887db3c4d525f9e18c3f1ae7c6513d230\"\u003e\u003ccode\u003eaab2974\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/ce6af36916d5ab9224bf193690d98f539585f208\"\u003e\u003ccode\u003ece6af36\u003c/code\u003e\u003c/a\u003e Added next release section to the changelog. [ci skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/compare/v1.0.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv-rails` from 3.1.8 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bkeepers/dotenv/releases\"\u003edotenv-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBoost app startup time by removing to_sentence usage by \u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in variables in commands by \u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow warning when a env var was not overwritten by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/531\"\u003ebkeepers/dotenv#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix a few small issues by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/532\"\u003ebkeepers/dotenv#532\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ehttps://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/34156bf400cd67387fa6ed9f146778f6a2f5f743\"\u003e\u003ccode\u003e34156bf\u003c/code\u003e\u003c/a\u003e Prepare for 3.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/ab478201bdb487bfebd9e89875fd4edcf19dc064\"\u003e\u003ccode\u003eab47820\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/531\"\u003e#531\u003c/a\u003e from grosser/grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/fae61202e432f39742e2592817cc7bb38f559852\"\u003e\u003ccode\u003efae6120\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/4f510f41073cabb9786e3a5ea57263933497e696\"\u003e\u003ccode\u003e4f510f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/532\"\u003e#532\u003c/a\u003e from grosser/grosser/fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/959e1dac9d933a7ffe6a2ab17081f8235b7822a9\"\u003e\u003ccode\u003e959e1da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/539\"\u003e#539\u003c/a\u003e from bkeepers/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/041451e4ef7fd3a4ea604fcabef0cfb6fb5e79a3\"\u003e\u003ccode\u003e041451e\u003c/code\u003e\u003c/a\u003e Update spec message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/b300f262bdf1cfd6ac5215fd44baa771753702b9\"\u003e\u003ccode\u003eb300f26\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/5f4ca012b03c82343ad3f926e2fd281aa30a434b\"\u003e\u003ccode\u003e5f4ca01\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/209dca47e453f7288aac9f31330e67e3f0b83e78\"\u003e\u003ccode\u003e209dca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/540\"\u003e#540\u003c/a\u003e from i7an/handle-parentheses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/48c495683008c5dd1816a89329e59f8386324bb2\"\u003e\u003ccode\u003e48c4956\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into handle-parentheses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kt-paperclip` from 7.2.2 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/releases\"\u003ekt-paperclip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using \u003ccode\u003eAws::S3::TransferManager\u003c/code\u003e if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature - add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1 - Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/135\"\u003e#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/139\"\u003e#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/134\"\u003e#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oz-tal\"\u003e\u003ccode\u003e@​oz-tal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zz9pzza\"\u003e\u003ccode\u003e@​zz9pzza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unijewski\"\u003e\u003ccode\u003e@​unijewski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lorennorman\"\u003e\u003ccode\u003e@​lorennorman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/146\"\u003ekreeti/kt-paperclip#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cgunther\"\u003e\u003ccode\u003e@​cgunther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jukra\"\u003e\u003ccode\u003e@​jukra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ehttps://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/blob/master/CHANGELOG.md\"\u003ekt-paperclip's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e7.3.0 (2026-01-31)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/158\"\u003ekreeti/kt-paperclip#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using Aws::S3::TransferManager if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature: Add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1: Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/139\"\u003ekreeti/kt-paperclip#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/818f236aa6f2323bd0055bea664b33187d926377\"\u003e\u003ccode\u003e818f236\u003c/code\u003e\u003c/a\u003e Deperecate NEWS to OLD-NEWS, see release notes for correct and accurate list ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/a38ed66b5d08210a4326b0d78e2116d0946fa3c2\"\u003e\u003ccode\u003ea38ed66\u003c/code\u003e\u003c/a\u003e prepare for new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/8820cb221210bf04ca2de278dab594adfa46efe5\"\u003e\u003ccode\u003e8820cb2\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/154\"\u003e#154\u003c/a\u003e] remove BOM from gd locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/cd5c4496d12894eafa218cb631c592b67c9c10a2\"\u003e\u003ccode\u003ecd5c449\u003c/code\u003e\u003c/a\u003e Fix S3 TransferManager to use configured client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/f017c401218da5a1e106ed3dd964b51d601bac5b\"\u003e\u003ccode\u003ef017c40\u003c/code\u003e\u003c/a\u003e Make usage of Aws::S3::TransferManager conditional based on availability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/233b4756745c2610988796a0059408a50d322b92\"\u003e\u003ccode\u003e233b475\u003c/code\u003e\u003c/a\u003e Support aws-sdk-s3 \u0026gt;= 1.196.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/e20e848c80ce16f18dae2162d5e00be0d9b51421\"\u003e\u003ccode\u003ee20e848\u003c/code\u003e\u003c/a\u003e Fix the use of deprecated methods from \u003ccode\u003eaws-sdk-s3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/5078ca1c33c8cb66865e6127152ac1e240b2bb0a\"\u003e\u003ccode\u003e5078ca1\u003c/code\u003e\u003c/a\u003e Fix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/153e7dbe462de4f7f3ef42c67f95390e98e6cba7\"\u003e\u003ccode\u003e153e7db\u003c/code\u003e\u003c/a\u003e fix frozen string literal deprecation warning (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/83dc8d92e63e4c360bb9f45af1cf3b63d99bed54\"\u003e\u003ccode\u003e83dc8d9\u003c/code\u003e\u003c/a\u003e Update LICENSE\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omniauth/omniauth/releases\"\u003eomniauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ruby 3.4 to CI by \u003ca href=\"https://github.com/tejasbubane\"\u003e\u003ccode\u003e@​tejasbubane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1142\"\u003eomniauth/omniauth#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd after_request_phase callback hook by \u003ca href=\"https://github.com/gerardo-navarro\"\u003e\u003ccode\u003e@​gerardo-navarro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1147\"\u003eomniauth/omniauth#1147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ehttps://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou may now configure an after_request_phase callback on your omniauth builder instance. This callback will be run after the request phase before returning the request result.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/20ac5e05a39d58d18aca6419599f7176208f985d\"\u003e\u003ccode\u003e20ac5e0\u003c/code\u003e\u003c/a\u003e 3.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/3a249afad83e4522bd4761404cbdc89fd56a1079\"\u003e\u003ccode\u003e3a249af\u003c/code\u003e\u003c/a\u003e Add after_request_phase callback hook (\u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/0bcfd5b25bf946422cd4d9c40c4f514121ac04d6\"\u003e\u003ccode\u003e0bcfd5b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1142\"\u003e#1142\u003c/a\u003e from tejasbubane/ruby-3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/09ee92e658878f31ab51f29e02d41296cfe36111\"\u003e\u003ccode\u003e09ee92e\u003c/code\u003e\u003c/a\u003e include cgi in test group due to removal of cookie\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/abfde9072cef0e4d89463daf6185ac68520087f7\"\u003e\u003ccode\u003eabfde90\u003c/code\u003e\u003c/a\u003e add dependency on logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/844548c8641d1a3b65c9062e67e073fa8bf39936\"\u003e\u003ccode\u003e844548c\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/5158faa94a620d8ec4d9ce400aabfef3a3844dd9\"\u003e\u003ccode\u003e5158faa\u003c/code\u003e\u003c/a\u003e Add release date to CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c5f46005e0207d2e436cf0db37c85170cca04da7\"\u003e\u003ccode\u003ec5f4600\u003c/code\u003e\u003c/a\u003e Update docs and examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/4c14af8e1e6dc2615da908c50e4b0b757972922e\"\u003e\u003ccode\u003e4c14af8\u003c/code\u003e\u003c/a\u003e Backfill missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e66d0bbe6ad91f9f5a60056dae2ebf850373f249\"\u003e\u003ccode\u003ee66d0bb\u003c/code\u003e\u003c/a\u003e Clean up dead code, modernize CI, and prep 1.2.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/b902e8e7585e8e3610040d9c770f2d4e90b6f132\"\u003e\u003ccode\u003eb902e8e\u003c/code\u003e\u003c/a\u003e Modernize CI: bump rubocop, checkout action, and tooling defaults\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ac9a979db8ee097971d5d70c12142070c539d8ab\"\u003e\u003ccode\u003eac9a979\u003c/code\u003e\u003c/a\u003e Add Ruby 4.0 to CI (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/d3f1c912e438ccf6aba577c66772bf2e37373d73\"\u003e\u003ccode\u003ed3f1c91\u003c/code\u003e\u003c/a\u003e Add GitHub pages config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/253f023cdd8a5d5e05b3fed9aa00ae478a6c2997\"\u003e\u003ccode\u003e253f023\u003c/code\u003e\u003c/a\u003e Remove calendar scope on example app\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/baaf3b755ea1a02c9f811fd513b0fe90fdd2defb\"\u003e\u003ccode\u003ebaaf3b7\u003c/code\u003e\u003c/a\u003e chore(doc): update JavaScript example in README (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/dcea9d208416b53af0956d95ce54daa424d36490\"\u003e\u003ccode\u003edcea9d2\u003c/code\u003e\u003c/a\u003e Add Ruby 3.3 and 3.4 to CI matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.5 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.5...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `terser` from 1.2.6 to 1.2.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md\"\u003eterser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.7 (23 March 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded a new module option to enable minification of ES6 modules (default is false)\u003c/li\u003e\n\u003cli\u003eupdate TerserJS to [5.46.1]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/14243401aadac062e738fde86525f261c37b1782\"\u003e\u003ccode\u003e1424340\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/67\"\u003e#67\u003c/a\u003e from ahorek/terser5461\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/ae1669dba36b571932a25685765932103db89189\"\u003e\u003ccode\u003eae1669d\u003c/code\u003e\u003c/a\u003e terser 5.46.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/c8b1c3213847dfeb85e1769958ecf9753651e697\"\u003e\u003ccode\u003ec8b1c32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/64\"\u003e#64\u003c/a\u003e from ahorek/module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/3a614841138d5c1dcf79d6362e22ad5b0a0b19f3\"\u003e\u003ccode\u003e3a61484\u003c/code\u003e\u003c/a\u003e add a module option\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ahorek/terser-ruby/compare/1.2.6...1.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.14.1 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize \u003ccode\u003eKeyFormatter\u003c/code\u003e on cache hits by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/607\"\u003erails/jbuilder#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake method_missing private by \u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003earray!\u003c/code\u003e and \u003ccode\u003eset!\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/604\"\u003erails/jbuilder#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e:unprocessable_content\u003c/code\u003e for scaffolds with Rack 3.1 or higher by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_map_collection\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/612\"\u003erails/jbuilder#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Preserve locals when rendering inline partial for object by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/613\"\u003erails/jbuilder#613\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mayur-kambariya\"\u003e\u003ccode\u003e@​mayur-kambariya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/609\"\u003erails/jbuilder#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexceder\"\u003e\u003ccode\u003e@​alexceder\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/614\"\u003erails/jbuilder#614\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/603\"\u003erails/jbuilder#603\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/018083d55f933c2a1d58929600799724462476e6\"\u003e\u003ccode\u003e018083d\u003c/code\u003e\u003c/a\u003e Prepare for 2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/72cf0673f5f8428dad00cf09c07e1aac0d6f3e17\"\u003e\u003ccode\u003e72cf067\u003c/code\u003e\u003c/a\u003e Update devcontainer image to Ruby 4.0.4 and add devcontainer-lock.json\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/d35a962709bc0ccc157a9d42f3f428e7aeee687a\"\u003e\u003ccode\u003ed35a962\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/615\"\u003e#615\u003c/a\u003e from taketo1113/ci-rails8.1-ruby4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cc42e7eb979116e37b63cb29ba5e86d4785f2153\"\u003e\u003ccode\u003ecc42e7e\u003c/code\u003e\u003c/a\u003e CI: Add Rails 8.1 \u0026amp; Ruby 4.0 to CI Matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/cd7482eebb69bc194587af056aef700291032570\"\u003e\u003ccode\u003ecd7482e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/613\"\u003e#613\u003c/a\u003e from affinity/moberegger/fix-inline-partial-locals-be\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/58283a0cbf73fc46753a39c09933b5adc5f9e011\"\u003e\u003ccode\u003e58283a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/612\"\u003e#612\u003c/a\u003e from affinity/moberegger/optimize-_map_collection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/09ca3e12cb603ea27af8c6057c2a38a76fde3ac7\"\u003e\u003ccode\u003e09ca3e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/603\"\u003e#603\u003c/a\u003e from taketo1113/update-rack-unprocessable_content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/9a921d3b816cd4d858c9aba05c5f30fa9db70e3d\"\u003e\u003ccode\u003e9a921d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/604\"\u003e#604\u003c/a\u003e from affinity/moberegger/optimize-set-and-array-dsl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/363c3c8d850ba8ff198c05131217fcfb026d0c0a\"\u003e\u003ccode\u003e363c3c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/614\"\u003e#614\u003c/a\u003e from alexceder/make-method-missing-private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/26c236c9353f28b1ac9a5438dea34fcd340c6b6f\"\u003e\u003ccode\u003e26c236c\u003c/code\u003e\u003c/a\u003e Make method_missing private\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.1...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 5.0.3 to 5.0.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.4\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.4/CHANGELOG.md#504---2026-05-08\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.4 - 2026-05-08\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix open redirect in \u003ccode\u003eFailureApp\u003c/code\u003e via unvalidated \u003ccode\u003eReferer\u003c/code\u003e header on non-GET session timeout. CVE-2026-40295 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-jp94-3292-c3xv\"\u003eGHSA-jp94-3292-c3xv\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/9ea459de9aec5f1217ad738c58e0d23fb9f5beaa\"\u003e\u003ccode\u003e9ea459d\u003c/code\u003e\u003c/a\u003e Release v5.0.4 with sec fix for timeoutable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/025fe2124f9928766fc46520e999633b598d0360\"\u003e\u003ccode\u003e025fe21\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/7ca7ed9c174525a4d36167441b35af4a0991b6af\"\u003e\u003ccode\u003e7ca7ed9\u003c/code\u003e\u003c/a\u003e Add GHSA link to the v5.0.3 sec fix changelog entry [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/605de86174c26b9f5b2618470249db2c225327d4\"\u003e\u003ccode\u003e605de86\u003c/code\u003e\u003c/a\u003e Update links to https [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5e3a8bf3a01cc556185dbde47ecf3bb20c41b150\"\u003e\u003ccode\u003e5e3a8bf\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5d202775d75ccee8c36a9ed72062f627202e29e2\"\u003e\u003ccode\u003e5d20277\u003c/code\u003e\u003c/a\u003e Cleanup old Rails.version check for db migration path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/4ffb0b7e88b627ac0575e475b279e0cc474b4ded\"\u003e\u003ccode\u003e4ffb0b7\u003c/code\u003e\u003c/a\u003e Fix Gemfile for Rails 7.2, incorrectly testing against 7.1\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/heartcombo/devise/compare/v5.0.3...v5.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.0.7 to 8.1.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIdentify Sidekiq connnections in Redis with \u003ccode\u003eCLIENT SETINFO\u003c/code\u003e \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case where Web UI could show an empty Batch set \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe TTIN signal is undeprecated as the INFO signal is not supported on Linux\u003c/li\u003e\n\u003cli\u003eShow iteration job state on Busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6978\"\u003e#6978\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInitial release for \u003ccode\u003ekiq\u003c/code\u003e, Sidekiq's official terminal UI:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003ebundle exec kiq\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUse REDIS_URL or REDIS_PROVIDER to point \u003ccode\u003ekiq\u003c/code\u003e to Redis.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMutation during iteration in \u003ccode\u003eSortedSet#each\u003c/code\u003e caused it to miss half of the jobs \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6936\"\u003e#6936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case resulting in nil crash on /busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6954\"\u003e#6954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDEPRECATION\u003c/strong\u003e \u003ccode\u003erequire 'sidekiq/testing'\u003c/code\u003e and\n\u003ccode\u003erequire 'sidekiq/testing/inline'\u003c/code\u003e.\nAdd new \u003ccode\u003eSidekiq.testing!(mode)\u003c/code\u003e API \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6931\"\u003e#6931\u003c/a\u003e\nRequiring code should not enable process-wide changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# Old, implicit\nrequire \u0026quot;sidekiq/testing\u0026quot;\nrequire \u0026quot;sidekiq/testing/inline\u0026quot;\n# New, more explicit\nSidekiq.testing!(:fake)\nSidekiq.testing!(:inline)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition with Stop button in UI \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6935\"\u003e#6935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix javascript error handler \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6893\"\u003e#6893\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/5c049c585a2eb4c91b1a163589d72465e99aad7e\"\u003e\u003ccode\u003e5c049c5\u003c/code\u003e\u003c/a\u003e changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/0bafeb1084b9c7a5edcf0bc507108b4603682597\"\u003e\u003ccode\u003e0bafeb1\u003c/code\u003e\u003c/a\u003e bump, release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/2a4eec2dd323adb32f333b4416ca167bf4b83a92\"\u003e\u003ccode\u003e2a4eec2\u003c/code\u003e\u003c/a\u003e Identify Sidekiq connections via CLIENT SETINFO (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6986\"\u003e#6986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/6bdf6903e93eeaf9b96fcbbe66f503fe758ee4b2\"\u003e\u003ccode\u003e6bdf690\u003c/code\u003e\u003c/a\u003e Fix: don't cache \u0026quot;none\u0026quot; type in Paginator::TYPE_CACHE (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6987\"\u003e#6987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/28b37b722c58d89593620c3733d3dcd87f6e6e08\"\u003e\u003ccode\u003e28b37b7\u003c/code\u003e\u003c/a\u003e release [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/4d0adda70769168a675bb260d2790d76f6849188\"\u003e\u003ccode\u003e4d0adda\u003c/code\u003e\u003c/a\u003e fmt, bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/906fb6837a2b42a5330b3748bdb4007ec06666ff\"\u003e\u003ccode\u003e906fb68\u003c/code\u003e\u003c/a\u003e sidekiq changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/92924ab48a80cf31148fd7ab4cd2e561d5bf823a\"\u003e\u003ccode\u003e92924ab\u003c/code\u003e\u003c/a\u003e ent changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/c6bd7b89e9bb825bc9c4969712828ef88b6d84bc\"\u003e\u003ccode\u003ec6bd7b8\u003c/code\u003e\u003c/a\u003e Add new keys to gd translation (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6984\"\u003e#6984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/29542380a69b23453f7e6e429ef96fe5fd62e3c9\"\u003e\u003ccode\u003e2954238\u003c/code\u003e\u003c/a\u003e tui: implement locale-aware number_with_delimiter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6983\"\u003e#6983\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.7...v8.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geocoder` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md\"\u003egeocoder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.6 (2025 Sep 21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for IPInfo Lite lookup (thanks github.com/iltempo).\u003c/li\u003e\n\u003cli\u003eVarious minor fixes and improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/d3515db46c5785db8cd48dbf94af123a2c99b8a9\"\u003e\u003ccode\u003ed3515db\u003c/code\u003e\u003c/a\u003e Prepare for release of gem version 1.8.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/737d16f277f81aabe73e2dfe466e2ba84fef188a\"\u003e\u003ccode\u003e737d16f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1694\"\u003e#1694\u003c/a\u003e from Intrepidd/update-data-gouv-fr-domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/4b50c085eea4de4f453eab2e8dc6faf7b3824420\"\u003e\u003ccode\u003e4b50c08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1695\"\u003e#1695\u003c/a\u003e from cprodhomme/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/31545ee756f1230a063e86458b3dadbac9b7e7b4\"\u003e\u003ccode\u003e31545ee\u003c/code\u003e\u003c/a\u003e Update README_API_GUIDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/3a90b5aa6c708945cf181f16a182ca232f668c4d\"\u003e\u003ccode\u003e3a90b5a\u003c/code\u003e\u003c/a\u003e Update BAN domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/b2c0aa5526f90209883e3ca64b73d9559d21f729\"\u003e\u003ccode\u003eb2c0aa5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1691\"\u003e#1691\u003c/a\u003e from TheRusskiy/radius-column-arel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/cd58cab7fd167d641927fe4a083963fcf5cd08df\"\u003e\u003ccode\u003ecd58cab\u003c/code\u003e\u003c/a\u003e add \u0026quot;arel\u0026quot; to near_test spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/63ca4702ccffe776b146c28d289f7449d25946ee\"\u003e\u003ccode\u003e63ca470\u003c/code\u003e\u003c/a\u003e radius column can be an instance of Arel.sql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/eaf85fe4de045c2ad3e035f560d6755e82646bee\"\u003e\u003ccode\u003eeaf85fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1688\"\u003e#1688\u003c/a\u003e from skillstopractice/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/00369bb35a29a86f54e6fea516ecf9842e5f855f\"\u003e\u003ccode\u003e00369bb\u003c/code\u003e\u003c/a\u003e Update tests to use data['place_name'] for Mapbox\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexreisner/geocoder/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pundit` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/varvet/pundit/blob/main/CHANGELOG.md\"\u003epundit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.2 (2025-09-24)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econfig/rubocop-rspec.yml\u003c/code\u003e back from accidentally being excluded \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.5.1 (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequiring only \u003ccode\u003epundit/rspec\u003c/code\u003e no longer raises an error in Active Support \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/857\"\u003e#857\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/2d665d67a26f794987df926e49676948fe115289\"\u003e\u003ccode\u003e2d665d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/867\"\u003e#867\u003c/a\u003e from varvet/kbs/release-v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/7ff48a83790aef27bd89fa4da6a0a238599bca2d\"\u003e\u003ccode\u003e7ff48a8\u003c/code\u003e\u003c/a\u003e Bump to v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/674abac197c7ecc000fd25a4542344d38c998535\"\u003e\u003ccode\u003e674abac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e from varvet/kbs/add-rubocop-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/923eebf39ccd6f8095a5c4270953e7a19d6d16a6\"\u003e\u003ccode\u003e923eebf\u003c/code\u003e\u003c/a\u003e Point changelog to PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/47668502881e3abed7dd004ca19fa11d66b23b6f\"\u003e\u003ccode\u003e4766850\u003c/code\u003e\u003c/a\u003e Add rubocop config file back to gem release files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/27a840bedadf0ef3d66f1857edd966c2e01cc18e\"\u003e\u003ccode\u003e27a840b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/863\"\u003e#863\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/381b202dd2e11c5eb0ea1134d29f85331a01d643\"\u003e\u003ccode\u003e381b202\u003c/code\u003e\u003c/a\u003e +3.4 -3.1 (EOL)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/4bb6a67819572bd9431d30048fbab4c9685cfbf2\"\u003e\u003ccode\u003e4bb6a67\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/862\"\u003e#862\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/6ceca0d2ab84d2240e6422e7b14d208ad10e3304\"\u003e\u003ccode\u003e6ceca0d\u003c/code\u003e\u003c/a\u003e Attempt code quality upload to qlty.sh instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/82d918a4c4c4ab393f662a32e94028d6b086285d\"\u003e\u003ccode\u003e82d918a\u003c/code\u003e\u003c/a\u003e Bump to v2.5.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/varvet/pundit/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ahoy_matey` from 5.4.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/ahoy/blob/master/CHANGELOG.md\"\u003eahoy_matey's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.0 (2026-04-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed error with \u003ccode\u003eAhoy::Tracker\u003c/code\u003e outside of requests\u003c/li\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.2 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cookie deletion with \u003ccode\u003ecookie_domain\u003c/code\u003e and \u003ccode\u003ecookie_options\u003c/code\u003e options\u003c/li\u003e\n\u003cli\u003eUpdated Ahoy.js to 0.4.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.1 (2025-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning with Rack 3.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/0934ed94a4a7263f682eefb47bd78cdc05d33c5d\"\u003e\u003ccode\u003e0934ed9\u003c/code\u003e\u003c/a\u003e Version bump to 5.5.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/1881c47e52d10deb1989964acf9809531a937aaf\"\u003e\u003ccode\u003e1881c47\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/bb10d30342311ccb8cfc4279555189d56129f6ce\"\u003e\u003ccode\u003ebb10d30\u003c/code\u003e\u003c/a\u003e Fixed error with Ahoy::Tracker outside of request when cookies disabled - res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/3b4e45fde58880d4432e1a5ab8dfadd41d617117\"\u003e\u003ccode\u003e3b4e45f\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/41d7834a3af1553d8cf890cf231e4fdb53c196d9\"\u003e\u003ccode\u003e41d7834\u003c/code\u003e\u003c/a\u003e Updated readme [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/2186f3857f702c6c5fa3e0d80310d852de2cc8f0\"\u003e\u003ccode\u003e2186f38\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/eed4fdad924261f9f57b87032e760a06fd4dcd05\"\u003e\u003ccode\u003eeed4fda\u003c/code\u003e\u003c/a\u003e Version bump to 5.4.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/f73c04e68fe8b884140cd659acee170224b19ec3\"\u003e\u003ccode\u003ef73c04e\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/7c50688aa1e4d56545be421a9427c36c51476383\"\u003e\u003ccode\u003e7c50688\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with path option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/5a801f44d8bd5e1ab6f8e9f8923f8ef39eaa6e75\"\u003e\u003ccode\u003e5a801f4\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with cookie_domain option - fixes \u003ca href=\"https://redirect.github.com/ankane/ahoy/issues/581\"\u003e#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/ahoy/compare/v5.4.0...v5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18n-js` from 4.2.3 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fnando/i18n-js/blob/main/CHANGELOG.md\"\u003ei18n-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/f8fb0dc0b01e7e639a6eb5dd875adbaa78858d8f\"\u003e\u003ccode\u003ef8fb0dc\u003c/code\u003e\u003c/a\u003e Bump up version (4.2.4).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/2cbea21df1ac16685a4e974716296853eccc0d49\"\u003e\u003ccode\u003e2cbea21\u003c/code\u003e\u003c/a\u003e Remove benchmark gem (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9f99172d197b586dab34f4cf6a08a1df9703222f\"\u003e\u003ccode\u003e9f99172\u003c/code\u003e\u003c/a\u003e Update matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9096c6e63bbbc24900bb10cfd0d42b6a89470c1c\"\u003e\u003ccode\u003e9096c6e\u003c/code\u003e\u003c/a\u003e Fix rubocop warnings.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/237b69b34f73873c2a3c753c45b208e670d15a31\"\u003e\u003ccode\u003e237b69b\u003c/code\u003e\u003c/a\u003e Update --quiet param description (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/1f3305ffa531614de22070ec3a0acbb592902636\"\u003e\u003ccode\u003e1f3305f\u003c/code\u003e\u003c/a\u003e Update action.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/674cb0781bdba259e7a25fcd2df6f8dd21dc5276\"\u003e\u003ccode\u003e674cb07\u003c/code\u003e\u003c/a\u003e Fix rubocop warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/877e6f1de96126021cce39f802377ffeead79ff4\"\u003e\u003ccode\u003e877e6f1\u003c/code\u003e\u003c/a\u003e Update actions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/7e27159f535643bc3080dce132a5ae953c4034ea\"\u003e\u003ccode\u003e7e27159\u003c/code\u003e\u003c/a\u003e Require ruby 3.2+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/58c32fdc576a499eb2433bd9d633d537f8a696d8\"\u003e\u003ccode\u003e58c32fd\u003c/code\u003e\u003c/a\u003e Disable rubocop rule.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fnando/i18n-js/compare/v4.2.3...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.1 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.1...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.24.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.24.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.3...v1.24.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.2...v1.24.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.1...v1.24.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.24.0...v1.24.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.23.0...v1.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.24.4\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix several compatibility issues with Ruby \u003ccode\u003e4.0.4\u003c/code\u003e, particularly the \u003ccode\u003eshould not compile with coverage\u003c/code\u003e error. See \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/547\"\u003e#547\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e to work even when coverage is enabled. Unfortunately only possible on Ruby \u003ccode\u003e4.0.4+\u003c/code\u003e.\nOn older rubies if coverage is enabled a warning will be issued and the feature won't work.\u003c/li\u003e\n\u003cli\u003eReduced cache files header size from 64 to 32 bytes, and got rid of the random padding element.\u003c/li\u003e\n\u003cli\u003eAvoid leaking a private method in \u003ccode\u003eObject\u003c/code\u003e when testing for Parse.y bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.3\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003e1.24.2\u003c/code\u003e workaround to parse Ruby files with UTF-8 even when the \u003ccode\u003eLANG\u003c/code\u003e environment variable\nis unset or set to \u003ccode\u003eC\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.2\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eWorkaround two Ruby bugs in \u003ccode\u003eRubyVM::InstructionSequence.compile_file\u003c/code\u003e, that were causing\nfiles to be loaded with the old Ruby parser instead of Prism, causing issues with some pattern matching syntax.\nRef: \u003ca href=\"https://bugs.ruby-lang.org/issues/22023\"\u003ehttps://bugs.ruby-lang.org/issues/22023\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix encoding of Ruby source files loaded when \u003ccode\u003eBOOTSNAP_READONLY\u003c/code\u003e is set.\nFiles would incorectly be loaded in \u003ccode\u003eASCII-8BIT\u003c/code\u003e causing literal strings outside\nthe pure ASCII range to have \u003ccode\u003eASCII-8BIT\u003c/code\u003e encoding instead of \u003ccode\u003eUTF-8\u003c/code\u003e.\nThis bug was introduced in \u003ccode\u003e1.24.0\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.24.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hook API to customize Ruby compilation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/0d8a0a64cd1f302a4cbb29088fff7847ef9852c8\"\u003e\u003ccode\u003e0d8a0a6\u003c/code\u003e\u003c/a\u003e Release 1.24.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6ccc5ebda794afe4e2b36be677640b4f7b6a03ac\"\u003e\u003ccode\u003e6ccc5eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/550\"\u003e#550\u003c/a\u003e from byroot/fstr-and-coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/86e95864f89067159dadb8be68b656ae1a5f38ea\"\u003e\u003ccode\u003e86e9586\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eBootsnap.enable_frozen_string_literal\u003c/code\u003e work even with coverage on\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/36c22246259452d163986565f7a946154f742da7\"\u003e\u003ccode\u003e36c2224\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/549\"\u003e#549\u003c/a\u003e from byroot/integration-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/6500a43b2ac7fda963f03ed62098fb3b2be2bdeb\"\u003e\u003ccode\u003e6500a43\u003c/code\u003e\u003c/a\u003e Handle Coverage being suspended\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cf3791edf37b778e14efa1f366c775f8456a3475\"\u003e\u003ccode\u003ecf3791e\u003c/code\u003e\u003c/a\u003e ISeq#input_to_output: just return \u003ccode\u003enil\u003c/code\u003e when using default compiler.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/cabdad95ed5218e6b888121c92702da4338de866\"\u003e\u003ccode\u003ecabdad9\u003c/code\u003e\u003c/a\u003e Only test Ruby [Bug \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/18250\"\u003e#18250\u003c/a\u003e] if on Ruby 3.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/490960e1dcd8bde4dda53e3ed1f435def73e0b0e\"\u003e\u003ccode\u003e490960e\u003c/code\u003e\u003c/a\u003e Yet another warning emitted from the canary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/045beb2ee5a85b1fd5000e6ee566b8b8a4c5df72\"\u003e\u003ccode\u003e045beb2\u003c/code\u003e\u003c/a\u003e Appease rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/d37f282ec8db1c9b31405c5629bcc6bc68d9974c\"\u003e\u003ccode\u003ed37f282\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/546\"\u003e#546\u003c/a\u003e from davidenglishmusic/rubocop-performance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.24.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rexml` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/releases\"\u003erexml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREXML 3.4.4 - 2025-09-10\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREXML 3.4.3 - 2025-09-07\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cl...\n\n_Description has been truncated_","html_url":"https://github.com/CircuitVerse/CircuitVerse/pull/7367","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7367","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7367/packages"}},{"old_version":"1.4.6","new_version":"1.6.3","update_type":"minor","path":null,"pr_created_at":"2026-05-01T13:48:42.000Z","version_change":"1.4.6 → 1.6.3","issue":{"uuid":"4364698277","node_id":"PR_kwDOB4ZGwM7XbtFU","number":306,"state":"open","title":"Bump the ruby-dependencies group with 29 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-01T13:48:42.000Z","updated_at":"2026-05-01T13:48:43.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"ruby-dependencies","update_count":29,"packages":[{"name":"sqlite3","old_version":"1.6.1","new_version":"2.9.3","repository_url":"https://github.com/sparklemotion/sqlite3-ruby"},{"name":"puma","old_version":"6.6.1","new_version":"8.0.1","repository_url":"https://github.com/puma/puma"},{"name":"turbo-rails","old_version":"1.4.0","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"jbuilder","old_version":"2.11.5","new_version":"2.14.1","repository_url":"https://github.com/rails/jbuilder"},{"name":"config","old_version":"4.1.0","new_version":"5.6.1","repository_url":"https://github.com/rubyconfig/config"},{"name":"google-apis-analyticsdata_v1beta","old_version":"0.32.0","new_version":"0.40.0","repository_url":"https://github.com/googleapis/google-api-ruby-client"},{"name":"googleauth","old_version":"1.3.0","new_version":"1.16.2","repository_url":"https://github.com/googleapis/google-auth-library-ruby"},{"name":"aws-sdk-core","old_version":"3.243.0","new_version":"3.246.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"rspec-core","old_version":"3.12.1","new_version":"3.13.6","repository_url":"https://github.com/rspec/rspec"},{"name":"jquery-rails","old_version":"4.5.1","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"aws-sdk-rails","old_version":"3.7.1","new_version":"5.1.0","repository_url":"https://github.com/aws/aws-sdk-rails"},{"name":"aws-sdk-s3","old_version":"1.216.0","new_version":"1.220.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"sprockets","old_version":"3.7.2","new_version":"4.2.2","repository_url":"https://github.com/rails/sprockets"},{"name":"rubyzip","old_version":"2.3.2","new_version":"3.2.2","repository_url":"https://github.com/rubyzip/rubyzip"},{"name":"ffi","old_version":"1.15.5","new_version":"1.17.4","repository_url":"https://github.com/ffi/ffi"},{"name":"nokogiri","old_version":"1.18.10","new_version":"1.19.3","repository_url":"https://github.com/sparklemotion/nokogiri"},{"name":"rack","old_version":"2.2.23","new_version":"3.2.6","repository_url":"https://github.com/rack/rack"},{"name":"net-imap","old_version":"0.5.13","new_version":"0.6.4","repository_url":"https://github.com/ruby/net-imap"},{"name":"json","old_version":"2.19.3","new_version":"2.19.4","repository_url":"https://github.com/ruby/json"},{"name":"sentry-ruby","old_version":"5.28.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-rails","old_version":"5.28.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"pg","old_version":"1.4.6","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"byebug","old_version":"11.1.3","new_version":"13.0.0","repository_url":"https://github.com/deivid-rodriguez/byebug"},{"name":"capybara","old_version":"3.38.0","new_version":"3.40.0","repository_url":"https://github.com/teamcapybara/capybara"},{"name":"selenium-webdriver","old_version":"4.8.1","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"rspec-rails","old_version":"6.0.1","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"web-console","old_version":"4.2.0","new_version":"4.2.1","repository_url":"https://github.com/rails/web-console"},{"name":"listen","old_version":"3.8.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.1.1","new_version":"4.4.2","repository_url":"https://github.com/rails/spring"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the ruby-dependencies group with 29 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [sqlite3](https://github.com/sparklemotion/sqlite3-ruby) | `1.6.1` | `2.9.3` |\n| [puma](https://github.com/puma/puma) | `6.6.1` | `8.0.1` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `1.4.0` | `2.0.23` |\n| [jbuilder](https://github.com/rails/jbuilder) | `2.11.5` | `2.14.1` |\n| [config](https://github.com/rubyconfig/config) | `4.1.0` | `5.6.1` |\n| [google-apis-analyticsdata_v1beta](https://github.com/googleapis/google-api-ruby-client) | `0.32.0` | `0.40.0` |\n| [googleauth](https://github.com/googleapis/google-auth-library-ruby) | `1.3.0` | `1.16.2` |\n| [aws-sdk-core](https://github.com/aws/aws-sdk-ruby) | `3.243.0` | `3.246.0` |\n| [rspec-core](https://github.com/rspec/rspec) | `3.12.1` | `3.13.6` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.5.1` | `4.6.1` |\n| [aws-sdk-rails](https://github.com/aws/aws-sdk-rails) | `3.7.1` | `5.1.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.216.0` | `1.220.0` |\n| [sprockets](https://github.com/rails/sprockets) | `3.7.2` | `4.2.2` |\n| [rubyzip](https://github.com/rubyzip/rubyzip) | `2.3.2` | `3.2.2` |\n| [ffi](https://github.com/ffi/ffi) | `1.15.5` | `1.17.4` |\n| [nokogiri](https://github.com/sparklemotion/nokogiri) | `1.18.10` | `1.19.3` |\n| [rack](https://github.com/rack/rack) | `2.2.23` | `3.2.6` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.13` | `0.6.4` |\n| [json](https://github.com/ruby/json) | `2.19.3` | `2.19.4` |\n| [sentry-ruby](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `6.5.0` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.28.1` | `6.5.0` |\n| [pg](https://github.com/ged/ruby-pg) | `1.4.6` | `1.6.3` |\n| [byebug](https://github.com/deivid-rodriguez/byebug) | `11.1.3` | `13.0.0` |\n| [capybara](https://github.com/teamcapybara/capybara) | `3.38.0` | `3.40.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.8.1` | `4.43.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `6.0.1` | `8.0.4` |\n| [web-console](https://github.com/rails/web-console) | `4.2.0` | `4.2.1` |\n| [listen](https://github.com/guard/listen) | `3.8.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.1.1` | `4.4.2` |\n\nUpdates `sqlite3` from 1.6.1 to 2.9.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/releases\"\u003esqlite3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eca6dd1cf6c037ccc8d3e5837190cc61ef15466092014951235641b5c4c8ab4ee  sqlite3-2.9.3-aarch64-linux-gnu.gem\r\nff017a36c463d02e9f0be7a6224521371128024e6a05ed16994afa5c037afbba  sqlite3-2.9.3-aarch64-linux-musl.gem\r\nfd8b74337a66bdaf746b97d65e6c9a2faff803c8f72d6b107fb880972815d072  sqlite3-2.9.3-arm-linux-gnu.gem\r\n792ae9a786bb37dbdc4c443c527bc91df423aac10e472f76d5cf5a9ac6d51980  sqlite3-2.9.3-arm-linux-musl.gem\r\n76b265d3d57362d3e38338f24f50a0c9cd47a4599c9cfbb578fac125d2299906  sqlite3-2.9.3-arm64-darwin.gem\r\n61edb2ce7a58e800478602e88b67e99f029b44747405c94c0cce7d165b0d0a96  sqlite3-2.9.3-x64-mingw-ucrt.gem\r\nceb2417f01563a2800836fbbc6d59aa0ca591882c99f6c50fdc0c8090da7a03b  sqlite3-2.9.3-x86-linux-gnu.gem\r\n1688e37da36a4513a1a1d6e9abb643f68723599abbe564cb1a1bf496c9ae8dca  sqlite3-2.9.3-x86-linux-musl.gem\r\n087e7cc4efc73d83e76354f028c4d1dc14552a05acc74f60e77a55f1bee6ef22  sqlite3-2.9.3-x86_64-darwin.gem\r\n85200a10c6cf5c60085fcca411a3168c5fba8fda3e2b1b0109ec277d7c226d46  sqlite3-2.9.3-x86_64-linux-gnu.gem\r\nb6d0437046d9180335dea1aa0592802e65c4f7b57409d63f14408211bf28536b  sqlite3-2.9.3-x86_64-linux-musl.gem\r\ne5ca871c87241bfdaf0e4a90d5177f4e4fe7af5f6951f88b4644339cc76e47ae  sqlite3-2.9.3.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSHA256 Checksums\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003eeeb86db55645b85327ba75129e3614658d974bf4da8fdc87018a0d42c59f6e42  sqlite3-2.9.2-aarch64-linux-gnu.gem\r\n4feff91fb8c2b13688da34b5627c9d1ed9cedb3ee87a7114ec82209147f07a6d  sqlite3-2.9.2-aarch64-linux-musl.gem\r\n1ee2eb06b5301aaf5ce343a6e88d99ac932d95202d7b350f0e7b6d8d588580d7  sqlite3-2.9.2-arm-linux-gnu.gem\r\n8ca0de6aceede968de0394e22e95d549834c4d8e318f69a92a52f049878a0057  sqlite3-2.9.2-arm-linux-musl.gem\r\nd15bd9609a05f9d54930babe039585efc8cadd57517c15b64ec7dfa75158a5e9  sqlite3-2.9.2-arm64-darwin.gem\r\nb1b10d8c45a495b1e5b6338f7baa11297522bb9809b01e7e575090edd685953e  sqlite3-2.9.2-x64-mingw-ucrt.gem\r\n066bc904522f8a7072236a81237c03a4a1dfe070a25107e392de03d1e4ad0e6d  sqlite3-2.9.2-x86-linux-gnu.gem\r\n6503c76278f5e8629b12b6518ff43a9a4f6d9381de73f0b086c9fa1226db5ede  sqlite3-2.9.2-x86-linux-musl.gem\r\ned691b5021674d72582d03c5a38e89634b961902735fb6225273892805421d13  sqlite3-2.9.2-x86_64-darwin.gem\r\ndce83ffcb7e72f9f7aeb6e5404f15d277a45332fe18ccce8a8b3ed51e8d23aee  sqlite3-2.9.2-x86_64-linux-gnu.gem\r\ne8dd906a613f13b60f6d47ae9dda376384d9de1ab3f7e3f2fdf2fd18a871a2d7  sqlite3-2.9.2-x86_64-linux-musl.gem\r\n86814150714b6b06a328d083f46408e7a4a83b5f0a9673ed934ee3a1cb7a73b1  sqlite3-2.9.2.gem\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/blob/main/CHANGELOG.md\"\u003esqlite3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.9.3 / 2026-04-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_53_0.html\"\u003ev3.53.0\u003c/a\u003e (from v3.51.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.2 / 2026-03-15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_3.html\"\u003ev3.51.3\u003c/a\u003e (from v3.51.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/688\"\u003e#688\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.1 / 2026-02-28\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_2.html\"\u003ev3.51.2\u003c/a\u003e (from v3.51.1). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/683\"\u003e#683\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.9.0 / 2025-12-27\u003c/h2\u003e\n\u003ch3\u003eRuby\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce native gem packages for Ruby 4.0. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for Ruby 3.1. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce \u003ccode\u003eStatement#named_params\u003c/code\u003e to introspect on a parameterized SQL statement. \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/627\"\u003e#627\u003c/a\u003e \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/642\"\u003e#642\u003c/a\u003e \u003ca href=\"https://github.com/captn3m0\"\u003e\u003ccode\u003e@​captn3m0\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImproved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSmall improvements to docstrings and comments. \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/houyuanjie\"\u003e\u003ccode\u003e@​houyuanjie\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.1 / 2025-11-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_1.html\"\u003ev3.51.1\u003c/a\u003e (from v3.51.0). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/659\"\u003e#659\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrecompiled native gems are built with rake-compiler-dock v1.10.0 (previously v1.9.1).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.8.0 / 2025-11-05\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_51_0.html\"\u003ev3.51.0\u003c/a\u003e (from v3.50.4). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/652\"\u003e#652\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.4 / 2025-09-19\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://www.sqlite.org/releaselog/3_50_4.html\"\u003ev3.50.4\u003c/a\u003e (from v3.50.3). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/644\"\u003e#644\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.7.3 / 2025-07-18\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eVendored sqlite is updated to \u003ca href=\"https://sqlite.org/releaselog/3_50_3.html\"\u003ev3.50.3\u003c/a\u003e (from v3.50.2). \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/638\"\u003e#638\u003c/a\u003e \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/2e8172c0a7699902b8630433e988903edab10d18\"\u003e\u003ccode\u003e2e8172c\u003c/code\u003e\u003c/a\u003e version bump to v2.9.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/3dee3f2c737cbc48b68e3b4632287b13521a60ea\"\u003e\u003ccode\u003e3dee3f2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/696\"\u003e#696\u003c/a\u003e from sparklemotion/dep-sqlite-3.53.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/6d1ae38f33c4528c0ac56951c052b90cdfad9c81\"\u003e\u003ccode\u003e6d1ae38\u003c/code\u003e\u003c/a\u003e build(deps): update vendored sqlite to 3.53.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/45611fd3f415338875407bcb0f67f6ae92bef65f\"\u003e\u003ccode\u003e45611fd\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/c1724fc7f816b1fd13071000a25976c0e7f3cd95\"\u003e\u003ccode\u003ec1724fc\u003c/code\u003e\u003c/a\u003e build(deps): bump vmactions/freebsd-vm in the actions group (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/694\"\u003e#694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8a7709e34196d1e37b7180fcddb0e6021a60ec97\"\u003e\u003ccode\u003e8a7709e\u003c/code\u003e\u003c/a\u003e build(deps-dev): update minitest requirement from 6.0.2 to 6.0.3 (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/b7c076de9b9d6658b2f77af788a55144cda0db69\"\u003e\u003ccode\u003eb7c076d\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 3 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/704beb8b35cf060268b2d6eb32bcb33297846622\"\u003e\u003ccode\u003e704beb8\u003c/code\u003e\u003c/a\u003e build(deps): bump the actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sparklemotion/sqlite3-ruby/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/efc56aa1e407a7aa6a96caefecd2c900e1f39223\"\u003e\u003ccode\u003eefc56aa\u003c/code\u003e\u003c/a\u003e version bump to v2.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/commit/8635618dca7edca3a804175610d0a81381e3554b\"\u003e\u003ccode\u003e8635618\u003c/code\u003e\u003c/a\u003e doc: new automated release process\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sparklemotion/sqlite3-ruby/compare/v1.6.1...v2.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 6.6.1 to 8.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.1 / 2026-04-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eprune_bundler\u003c/code\u003e stripping user-configured \u003ccode\u003eBUNDLE_*\u003c/code\u003e env vars (e.g. \u003ccode\u003eBUNDLE_WITHOUT\u003c/code\u003e) on re-exec, which caused workers to crash on boot (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse blocks for debug logging to avoid creating log messages when debug is disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3920\"\u003e#3920\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReword v8 upgrade guide IPv6 bullet for clarity (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/cee7e613c0d6e072b1ae9993c6dec63cbf259ec3\"\u003e\u003ccode\u003ecee7e61\u003c/code\u003e\u003c/a\u003e Release v8.0.1 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3932\"\u003e#3932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/f955cafec47be2ac8c296a7ab278288737984243\"\u003e\u003ccode\u003ef955caf\u003c/code\u003e\u003c/a\u003e Fix prune_bundler stripping user-configured BUNDLE_* env vars on re-exec (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3929\"\u003e#3929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97996aa025b9ad9ef5252af4a4b0f859cc3c0c23\"\u003e\u003ccode\u003e97996aa\u003c/code\u003e\u003c/a\u003e ci: test_error_logger.rb - fix TruffleRuby error (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3930\"\u003e#3930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/03825bc90fd04dc00dd63d1bf6bf72c224ccbed9\"\u003e\u003ccode\u003e03825bc\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/github-script from 8 to 9 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3925\"\u003e#3925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/053efae42144c65cdc7110085512216647a68bdc\"\u003e\u003ccode\u003e053efae\u003c/code\u003e\u003c/a\u003e Reword v8 upgrade guide ipv6 bullet (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3928\"\u003e#3928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/b19f35ae64d23d4d870089f2b199b0213bac00cc\"\u003e\u003ccode\u003eb19f35a\u003c/code\u003e\u003c/a\u003e Fix incorrect hook names in gRPC docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3923\"\u003e#3923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/eeabe4bf4d887dc3fbac3f6bdbee1eadf807c9e9\"\u003e\u003ccode\u003eeeabe4b\u003c/code\u003e\u003c/a\u003e Use blocks for debug logging to avoid creating messages if debug disabled (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v6.6.1...v8.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 1.4.0 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v1.4.0...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jbuilder` from 2.11.5 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jbuilder/releases\"\u003ejbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eJbuilder.encode\u003c/code\u003e properly forwards arguments to \u003ccode\u003e.new\u003c/code\u003e by \u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/flavorjones\"\u003e\u003ccode\u003e@​flavorjones\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/601\"\u003erails/jbuilder#601\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/rails/jbuilder/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support to Ruby \u0026lt; 3.0 and Rails \u0026lt; 7.0\u003c/li\u003e\n\u003cli\u003eTest against Rails 8 and fix Rails 7 logger dependency by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/582\"\u003erails/jbuilder#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd status: :see_other to update action by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/583\"\u003erails/jbuilder#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForce close final statement in templates by \u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_is_collection?\u003c/code\u003e method by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e#frozen_string_literal: true\u003c/code\u003e to all files by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/599\"\u003erails/jbuilder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003e_key\u003c/code\u003e to prevent string allocation when formatting \u003ccode\u003eSymbol\u003c/code\u003es by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/593\"\u003erails/jbuilder#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize key formatter by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/597\"\u003erails/jbuilder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize internal \u003ccode\u003eextract!\u003c/code\u003e calls to save on memory allocation by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/598\"\u003erails/jbuilder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix regression in API controllers with view_cache_dependencies helper by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/575\"\u003erails/jbuilder#575\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize \u003ccode\u003emethod_missing\u003c/code\u003e via \u003ccode\u003ealias_method\u003c/code\u003e by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/600\"\u003erails/jbuilder#600\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup project for Rails 7+ support by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/594\"\u003erails/jbuilder#594\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix warnings and prevent Jbuilder::VERSION constant from being obliterated by \u003ca href=\"https://github.com/pixeltrix\"\u003e\u003ccode\u003e@​pixeltrix\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/574\"\u003erails/jbuilder#574\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOptimize memory allocation when rendering partials by \u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/591\"\u003erails/jbuilder#591\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/richardvenneman\"\u003e\u003ccode\u003e@​richardvenneman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/576\"\u003erails/jbuilder#576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ienders\"\u003e\u003ccode\u003e@​ienders\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/578\"\u003erails/jbuilder#578\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/moberegger\"\u003e\u003ccode\u003e@​moberegger\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/590\"\u003erails/jbuilder#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.13.0...v2.14.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.13.0...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRedirect to \u003ccode\u003e@record\u003c/code\u003e or path in controller generator by \u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/569\"\u003erails/jbuilder#569\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn early from collection partial rendering if blank by \u003ca href=\"https://github.com/tylerjc\"\u003e\u003ccode\u003e@​tylerjc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/560\"\u003erails/jbuilder#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing ':see_other' status code in generated destroy controller method by \u003ca href=\"https://github.com/ldeld\"\u003e\u003ccode\u003e@​ldeld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/538\"\u003erails/jbuilder#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove OpenStruct references from Jbuilder by \u003ca href=\"https://github.com/mtsmfm\"\u003e\u003ccode\u003e@​mtsmfm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/567\"\u003erails/jbuilder#567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse new \u003ccode\u003eparams.expect\u003c/code\u003e syntax instead of \u003ccode\u003eparams.require\u003c/code\u003e by \u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/573\"\u003erails/jbuilder#573\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jeromedalbert\"\u003e\u003ccode\u003e@​jeromedalbert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/570\"\u003erails/jbuilder#570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tylerjc\"\u003e\u003ccode\u003e@​tylerjc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/560\"\u003erails/jbuilder#560\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ldeld\"\u003e\u003ccode\u003e@​ldeld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/538\"\u003erails/jbuilder#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtsmfm\"\u003e\u003ccode\u003e@​mtsmfm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/jbuilder/pull/567\"\u003erails/jbuilder#567\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/rails/jbuilder/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/38339adaa9d44ba89c0dde2a795338a886941e6f\"\u003e\u003ccode\u003e38339ad\u003c/code\u003e\u003c/a\u003e Prepare for 2.14.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/2400fd9ce631ec9689b535e9af6ad866781f8ef9\"\u003e\u003ccode\u003e2400fd9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/601\"\u003e#601\u003c/a\u003e from flavorjones/flavorjones/fix-encode-arguments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/a6863b5d582b966fcfbef8686c829c950efd1f5c\"\u003e\u003ccode\u003ea6863b5\u003c/code\u003e\u003c/a\u003e Ensure that Jbuilder.encode properly forwards arguments to .new\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/30ba7df152aacdf20b6267a82b9d2b1f9e947636\"\u003e\u003ccode\u003e30ba7df\u003c/code\u003e\u003c/a\u003e Prepare for 2.14.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/5f4af71c859c6b234eef1682f81aac225534f048\"\u003e\u003ccode\u003e5f4af71\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/591\"\u003e#591\u003c/a\u003e from moberegger/moberegger/optimize_options_merges\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/6fd6c0662f6507be951ba842857c663adb000f56\"\u003e\u003ccode\u003e6fd6c06\u003c/code\u003e\u003c/a\u003e Small _set_inline_partial optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/b7b5abb02d9bb2ed1fc584a08142838a05cafc08\"\u003e\u003ccode\u003eb7b5abb\u003c/code\u003e\u003c/a\u003e Stop mutating options in partial! method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/7e16adf446c9da701e1e5fdbe9c93f7f8095630d\"\u003e\u003ccode\u003e7e16adf\u003c/code\u003e\u003c/a\u003e Stop mutating options in set! method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/8474b41f666b13055b9368107c783cdae7903fb6\"\u003e\u003ccode\u003e8474b41\u003c/code\u003e\u003c/a\u003e Remove _partial micro-optimization\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jbuilder/commit/9ffacf75a64f5f595bee3cfb28dcfe3307d8e2da\"\u003e\u003ccode\u003e9ffacf7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/jbuilder/issues/574\"\u003e#574\u003c/a\u003e from pixeltrix/fix-warnings-and-version-constant\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/jbuilder/compare/v2.11.5...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `config` from 4.1.0 to 5.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/releases\"\u003econfig's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e by \u003ca href=\"https://github.com/pkuczynski\"\u003e\u003ccode\u003e@​pkuczynski\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003erubyconfig/config#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.6.0...5.6.1\"\u003ehttps://github.com/rubyconfig/config/compare/5.6.0...5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: added extra sources in initializer by \u003ca href=\"https://github.com/Nuzair46\"\u003e\u003ccode\u003e@​Nuzair46\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003erubyconfig/config#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.2...5.6.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.2...5.6.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003erubyconfig/config#363\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.5.0...5.5.2\"\u003ehttps://github.com/rubyconfig/config/compare/5.5.0...5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables by \u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efunding_url\u003c/code\u003e rather than \u003ccode\u003epost_install_message\u003c/code\u003e by \u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dominh\"\u003e\u003ccode\u003e@​dominh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003erubyconfig/config#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003erubyconfig/config#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pda\"\u003e\u003ccode\u003e@​pda\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003erubyconfig/config#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rubyconfig/config/compare/5.4.0...5.5.0\"\u003ehttps://github.com/rubyconfig/config/compare/5.4.0...5.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rubyconfig/config/blob/master/CHANGELOG.md\"\u003econfig's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(security): replace IO.read with File.read \u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/378\"\u003e#378\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eextra_sources\u003c/code\u003e in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix warning: ostruct was loaded from the standard library with Ruby 3.3.5 and 3.4+ (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.1\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix funding_url to funding_uri in gemspec (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/361\"\u003e#361\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.5.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow arrays to be passed through env variables (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/354\"\u003e#354\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse funding_url rather than post_install_message (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/360\"\u003e#360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typos in the tests and documentation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd configuration option \u003ccode\u003eenvironment\u003c/code\u003e to override the use of \u003ccode\u003eRails.env\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/356\"\u003e#356\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003edry-validation\u003c/code\u003e from dependencies (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/333\"\u003e#333\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.2.0\u003c/h2\u003e\n\u003ch3\u003eNew features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow to use custom filename \u0026amp;\u0026amp; directory name to store configs (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent name collision with private methods from ancestors (\u003ca href=\"https://redirect.github.com/rubyconfig/config/pull/351\"\u003e#351\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.1.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/8b6ffe6dcc91f52f06d5a1502333108d1c6033ca\"\u003e\u003ccode\u003e8b6ffe6\u003c/code\u003e\u003c/a\u003e release: 5.6.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/d639f9db7355195f1ea7d21ddae32f0c166759ae\"\u003e\u003ccode\u003ed639f9d\u003c/code\u003e\u003c/a\u003e ci: limit workflow permissions (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/379\"\u003e#379\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/e0bf18fab4feed4f5413c6528c198009b36fa536\"\u003e\u003ccode\u003ee0bf18f\u003c/code\u003e\u003c/a\u003e fix(security): replace \u003ccode\u003eIO.read\u003c/code\u003e with \u003ccode\u003eFile.read\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/378\"\u003e#378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/263e66a4a70c053f1181f8f65d666d22a6f60b64\"\u003e\u003ccode\u003e263e66a\u003c/code\u003e\u003c/a\u003e test: bump puma in rails 5.2 test app to fix security warning (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/377\"\u003e#377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/c833d1964b0e10ae71ccc780bc46766baeb7e22e\"\u003e\u003ccode\u003ec833d19\u003c/code\u003e\u003c/a\u003e release: 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/4dc0f3e6e945a6159f35630098f8de0311a6908a\"\u003e\u003ccode\u003e4dc0f3e\u003c/code\u003e\u003c/a\u003e ci: fix jruby rails \u0026gt;= 7.2 (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/376\"\u003e#376\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1f17cd8d6215cf38e702f58c0f701e813c7ce0ef\"\u003e\u003ccode\u003e1f17cd8\u003c/code\u003e\u003c/a\u003e feat: added extra sources in initializer (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/97b3e8cbf47f022a27ff4962c059b0fc139a1369\"\u003e\u003ccode\u003e97b3e8c\u003c/code\u003e\u003c/a\u003e ci: add rails 7.2 and 8.0 to the test matrix and bump some older dependencies...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/1b5581d23b47c81a233d61c28f0c6716d74d8f63\"\u003e\u003ccode\u003e1b5581d\u003c/code\u003e\u003c/a\u003e ci: add Ruby 3.4 to the test matrix (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rubyconfig/config/commit/a4c978f4a64975fd609780541b2b243883217e4f\"\u003e\u003ccode\u003ea4c978f\u003c/code\u003e\u003c/a\u003e ci: remove unnecessary ubuntu packages installation (\u003ca href=\"https://redirect.github.com/rubyconfig/config/issues/374\"\u003e#374\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rubyconfig/config/compare/4.1.0...5.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-apis-analyticsdata_v1beta` from 0.32.0 to 0.40.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/blob/main/generated/google-apis-analyticsdata_v1beta/CHANGELOG.md\"\u003egoogle-apis-analyticsdata_v1beta's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003ev0.40.0 (2025-05-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.17.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.39.0 (2024-11-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20241117\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.38.0 (2024-09-01)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240825\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.37.0 (2024-08-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240731\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.36.0 (2024-05-19)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240512\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.15.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.35.0 (2024-02-24)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.14.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.34.0 (2024-02-04)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated from discovery document revision 20240128\u003c/li\u003e\n\u003cli\u003eRegenerated using generator version 0.13.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ev0.33.0 (2024-01-22)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRegenerated using generator version 0.13.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/google-api-ruby-client/compare/0.32.0...0.40.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/releases\"\u003egoogleauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogleauth: v1.16.2\u003c/h2\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.1\u003c/h2\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.16.0\u003c/h2\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eInclude security warning in ExternalAccount and ImpersonatedServiceAccount credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.15.1\u003c/h2\u003e\n\u003ch3\u003e1.15.1 (2025-10-14)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate method make_creds in DefaultCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.15.0\u003c/h2\u003e\n\u003ch3\u003e1.15.0 (2025-08-25)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd typed errors to authentication library (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for JWT 3.x (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix incorrect error and apply some code complexity refactoring (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Pathname for cred loading (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments\u003c/li\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egoogleauth: v1.14.0\u003c/h2\u003e\n\u003ch3\u003e1.14.0 (2025-03-14)\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/blob/main/CHANGELOG.md\"\u003egoogleauth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e1.16.2 (2026-02-26)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003einitialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereturn response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.1 (2026-01-15)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003erestore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.16.0 (2025-11-21)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eInclude security warning in ExternalAccount and ImpersonatedServiceAccount credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/551\"\u003e#551\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.15.1 (2025-10-14)\u003c/h3\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate method make_creds in DefaultCredentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/545\"\u003e#545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.15.0 (2025-08-25)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd typed errors to authentication library (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for JWT 3.x (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eBug Fixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003efix incorrect error and apply some code complexity refactoring (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esupport Pathname for cred loading (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eDocumentation\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments\u003c/li\u003e\n\u003cli\u003eadd summary documentation on credentials types and improve YARD comments (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e1.14.0 (2025-03-14)\u003c/h3\u003e\n\u003ch4\u003eFeatures\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eadd API key credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Bearer token credentials\u003c/li\u003e\n\u003cli\u003eadd BearerToken credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/522\"\u003e#522\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/1ef191b1342c19736ebe7a5640bfb86a7d989c68\"\u003e\u003ccode\u003e1ef191b\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.2 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/565\"\u003e#565\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/fb5b7978d66b43465081a024aaf7ebc17354ed9d\"\u003e\u003ccode\u003efb5b797\u003c/code\u003e\u003c/a\u003e fix: return response body from revoke! for logging pipeline (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/562\"\u003e#562\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/b0ec7d8b1e7a722839a196cb7a56b9c6f43e8159\"\u003e\u003ccode\u003eb0ec7d8\u003c/code\u003e\u003c/a\u003e fix: initialize the JWT credentials without JSON roundtrip (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/564\"\u003e#564\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/5c4ab1cfc3517d5490633c878cb5136ca4da75e6\"\u003e\u003ccode\u003e5c4ab1c\u003c/code\u003e\u003c/a\u003e chore: replace old ruby teams with cloud-sdk-ruby-team (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/560\"\u003e#560\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/43ab9db5f237fb337cbd8d8db562f28cc2bfcff8\"\u003e\u003ccode\u003e43ab9db\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/559\"\u003e#559\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/d7193fc6364f099d8110271a65d474227573aa91\"\u003e\u003ccode\u003ed7193fc\u003c/code\u003e\u003c/a\u003e fix: restore support for JSON keys missing 'type' field (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/558\"\u003e#558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/a59a1df96d4bf476d1fd96544b309ce4a6a70ec9\"\u003e\u003ccode\u003ea59a1df\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.16.0 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/550\"\u003e#550\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/317474db5f5889755f309704a9304d4fb86f06f6\"\u003e\u003ccode\u003e317474d\u003c/code\u003e\u003c/a\u003e fix: Include security warning in ExternalAccount and ImpersonatedServiceAccou...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/4c31b17f02d0f46c991418ab6f909383623d489c\"\u003e\u003ccode\u003e4c31b17\u003c/code\u003e\u003c/a\u003e feat: Add ADC support for impersonated credentials (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/commit/1c6724ffd2e7a9c8bf171f9858bcd334d03df98b\"\u003e\u003ccode\u003e1c6724f\u003c/code\u003e\u003c/a\u003e chore(main): release googleauth 1.15.1 (\u003ca href=\"https://redirect.github.com/googleapis/google-auth-library-ruby/issues/546\"\u003e#546\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-auth-library-ruby/compare/googleauth/v1.3.0...googleauth/v1.16.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aws-sdk-core` from 3.243.0 to 3.246.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/CHANGELOG.md\"\u003eaws-sdk-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.246.0 (2026-04-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Updated configuration values for \u003ccode\u003edefaults_mode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.245.0 (2026-04-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - Updated Aws::STS::Client with the latest API changes.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFeature - The STS client now supports configuring SigV4a through the auth scheme preference setting. SigV4a uses asymmetric cryptography, enabling customers using long-term IAM credentials to continue making STS API calls even when a region is isolated from the partition leader.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue - Explicitly set 0600 permissions on SSO/login cache files.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.244.0 (2026-03-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support waiter error matcher to handle both boolean and boolean-string acceptors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-sdk-ruby/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rspec-core` from 3.12.1 to 3.13.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rspec/rspec/blob/rspec-core-v3.13.6/rspec-core/Changelog.md\"\u003erspec-core's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e3.13.6 / 2025-10-19\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd explicit block parameter to \u003ccode\u003eRSpec::World::Null.traverse_example_group_trees_until\u003c/code\u003e to\nprevent warning. (\u003ca href=\"https://github.com/viralpraxis\"\u003e\u003ccode\u003e@​viralpraxis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/240\"\u003erspec/rspec#240\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.5 / 2025-06-25\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.5\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix finding failed lines from frozen backtrace arrays. (Jon Rowe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/225\"\u003e#225\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.4 / 2025-05-27\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.3...rspec-core-v3.13.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug Fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix links in gemspec to point to the monorepo / homepage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.3 / 2025-02-06\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec/compare/rspec-core-v3.13.4...rspec-core-v3.13.3\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reporter memorisation of \u003ccode\u003eExamplesNotification\u003c/code\u003e used in \u003ccode\u003eRSpec::Core::Reporter#finish\u003c/code\u003e\nby reusing an instance across notifcations. (Maxime Lapointe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/172\"\u003erspec/rspec#172\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix memorisation of \u003ccode\u003eRSpec::Core::Example#location_rerun_argument\u003c/code\u003e.\n(Maxime Lapointe, \u003ca href=\"https://redirect.github.com/rspec/rspec/issues/173\"\u003erspec/rspec#173\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.2 / 2024-10-18\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.13.1...v3.13.2\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRSpec::Configuration#requires\u003c/code\u003e will reflect files already required, whilst requiring\nthem. (Jon Rowe, \u003ca href=\"https://redirect.github.com/rspec/rspec-core/issues/3117\"\u003erspec/rspec-core#3117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.1 / 2024-09-02\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.13.0...v3.13.1\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSort ids to run as the original order to fix \u003ccode\u003e--bisect\u003c/code\u003e. (Maki Kawahara, \u003ca href=\"https://redirect.github.com/rspec/rspec-core/issues/3093\"\u003erspec/rspec-core#3093\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e3.13.0 / 2024-02-04\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"http://github.com/rspec/rspec-core/compare/v3.12.3...v3.13.0\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rspec/rspec/commits/rspec-core-v3.13.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `googleauth` from 1.3.0 to 1.16.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://...\n\n_Description has been truncated_","html_url":"https://github.com/dpla/dashboard-analytics/pull/306","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dpla%2Fdashboard-analytics/issues/306","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/306/packages"}},{"old_version":"1.6.1","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-04-20T23:55:34.000Z","version_change":"1.6.1 → 1.6.3","issue":{"uuid":"4299379315","node_id":"PR_kwDOCSVaMM7UIreO","number":7320,"state":"open","title":"build(deps): bump the minor-and-patch group across 1 directory with 65 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T23:55:34.000Z","updated_at":"2026-04-20T23:56:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"minor-and-patch","update_count":65,"packages":[{"name":"aws-actionmailer-ses","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/aws/aws-actionmailer-ses-ruby"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"kt-paperclip","old_version":"7.2.2","new_version":"7.3.0","repository_url":"https://github.com/kreeti/kt-paperclip"},{"name":"omniauth","old_version":"2.1.3","new_version":"2.1.4","repository_url":"https://github.com/omniauth/omniauth"},{"name":"omniauth-google-oauth2","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/zquestz/omniauth-google-oauth2"},{"name":"view_component","old_version":"4.6.0","new_version":"4.7.0","repository_url":"https://github.com/viewcomponent/view_component"},{"name":"rails","old_version":"8.0.5","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"terser","old_version":"1.2.6","new_version":"1.2.7","repository_url":"https://github.com/ahorek/terser-ruby"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.3","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"geocoder","old_version":"1.8.5","new_version":"1.8.6","repository_url":"https://github.com/alexreisner/geocoder"},{"name":"pundit","old_version":"2.5.0","new_version":"2.5.2","repository_url":"https://github.com/varvet/pundit"},{"name":"ahoy_matey","old_version":"5.4.0","new_version":"5.5.0","repository_url":"https://github.com/ankane/ahoy"},{"name":"i18n-js","old_version":"4.2.3","new_version":"4.2.4","repository_url":"https://github.com/fnando/i18n-js"},{"name":"pg","old_version":"1.6.1","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"rexml","old_version":"3.4.2","new_version":"3.4.4","repository_url":"https://github.com/ruby/rexml"},{"name":"flipper-redis","old_version":"1.3.6","new_version":"1.4.1","repository_url":"https://github.com/flippercloud/flipper"},{"name":"friendly_id","old_version":"5.5.1","new_version":"5.6.0","repository_url":"https://github.com/norman/friendly_id"},{"name":"rails-i18n","old_version":"8.0.2","new_version":"8.1.0","repository_url":"https://github.com/svenfuchs/rails-i18n"},{"name":"recaptcha","old_version":"5.20.1","new_version":"5.21.2","repository_url":"https://github.com/ambethia/recaptcha"},{"name":"strong_migrations","old_version":"2.5.0","new_version":"2.6.0","repository_url":"https://github.com/ankane/strong_migrations"},{"name":"debug","old_version":"1.11.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.5.0","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.2","new_version":"3.8.0","repository_url":"https://github.com/faker-ruby/faker"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-performance","old_version":"1.25.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.6.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rbs_rails","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/pocke/rbs_rails"},{"name":"json-schema","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/voxpupuli/json-schema"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"undercover","old_version":"0.8.0","new_version":"0.8.4","repository_url":"https://github.com/grodowski/undercover"},{"name":"capybara-playwright-driver","old_version":"0.5.7","new_version":"0.5.9","repository_url":"https://github.com/YusukeIwaki/capybara-playwright-driver"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"bundler-audit","old_version":"0.9.2","new_version":"0.9.3","repository_url":"https://github.com/rubysec/bundler-audit"},{"name":"lookbook","old_version":"2.3.13","new_version":"2.3.14","repository_url":"https://github.com/lookbook-hq/lookbook"},{"name":"oj","old_version":"3.16.11","new_version":"3.17.0","repository_url":"https://github.com/ohler55/oj"},{"name":"rack-attack","old_version":"6.7.0","new_version":"6.8.0","repository_url":"https://github.com/rack/rack-attack"},{"name":"aws-sdk-s3","old_version":"1.208.0","new_version":"1.219.0","repository_url":"https://github.com/aws/aws-sdk-ruby"},{"name":"opentelemetry-sdk","old_version":"1.8.1","new_version":"1.11.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-exporter-otlp","old_version":"0.30.0","new_version":"0.33.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby"},{"name":"opentelemetry-instrumentation-active_job","old_version":"0.8.0","new_version":"0.11.0","repository_url":"https://github.com/open-telemetry/opentelemetry-ruby-contrib"},{"name":"maintenance_tasks","old_version":"2.12.0","new_version":"2.14.0","repository_url":"https://github.com/Shopify/maintenance_tasks"},{"name":"stackprof","old_version":"0.2.27","new_version":"0.2.28","repository_url":"https://github.com/tmm1/stackprof"},{"name":"concurrent-ruby","old_version":"1.3.5","new_version":"1.3.6","repository_url":"https://github.com/ruby-concurrency/concurrent-ruby"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 47 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [aws-actionmailer-ses](https://github.com/aws/aws-actionmailer-ses-ruby) | `1.0.0` | `1.1.0` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [kt-paperclip](https://github.com/kreeti/kt-paperclip) | `7.2.2` | `7.3.0` |\n| [omniauth](https://github.com/omniauth/omniauth) | `2.1.3` | `2.1.4` |\n| [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) | `1.2.1` | `1.2.2` |\n| [view_component](https://github.com/viewcomponent/view_component) | `4.6.0` | `4.7.0` |\n| [rails](https://github.com/rails/rails) | `8.0.5` | `8.1.3` |\n| [terser](https://github.com/ahorek/terser-ruby) | `1.2.6` | `1.2.7` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.3` |\n| [geocoder](https://github.com/alexreisner/geocoder) | `1.8.5` | `1.8.6` |\n| [pundit](https://github.com/varvet/pundit) | `2.5.0` | `2.5.2` |\n| [ahoy_matey](https://github.com/ankane/ahoy) | `5.4.0` | `5.5.0` |\n| [i18n-js](https://github.com/fnando/i18n-js) | `4.2.3` | `4.2.4` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.1` | `1.6.3` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [rexml](https://github.com/ruby/rexml) | `3.4.2` | `3.4.4` |\n| [flipper-redis](https://github.com/flippercloud/flipper) | `1.3.6` | `1.4.1` |\n| [friendly_id](https://github.com/norman/friendly_id) | `5.5.1` | `5.6.0` |\n| [rails-i18n](https://github.com/svenfuchs/rails-i18n) | `8.0.2` | `8.1.0` |\n| [recaptcha](https://github.com/ambethia/recaptcha) | `5.20.1` | `5.21.2` |\n| [strong_migrations](https://github.com/ankane/strong_migrations) | `2.5.0` | `2.6.0` |\n| [debug](https://github.com/ruby/debug) | `1.11.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.5.0` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.8.0` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.25.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.6.0` | `3.9.0` |\n| [rbs_rails](https://github.com/pocke/rbs_rails) | `0.12.1` | `0.13.1` |\n| [json-schema](https://github.com/voxpupuli/json-schema) | `6.0.0` | `6.2.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [undercover](https://github.com/grodowski/undercover) | `0.8.0` | `0.8.4` |\n| [capybara-playwright-driver](https://github.com/YusukeIwaki/capybara-playwright-driver) | `0.5.7` | `0.5.9` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [bundler-audit](https://github.com/rubysec/bundler-audit) | `0.9.2` | `0.9.3` |\n| [lookbook](https://github.com/lookbook-hq/lookbook) | `2.3.13` | `2.3.14` |\n| [oj](https://github.com/ohler55/oj) | `3.16.11` | `3.17.0` |\n| [rack-attack](https://github.com/rack/rack-attack) | `6.7.0` | `6.8.0` |\n| [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) | `1.208.0` | `1.219.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-ruby) | `1.8.1` | `1.11.0` |\n| [opentelemetry-exporter-otlp](https://github.com/open-telemetry/opentelemetry-ruby) | `0.30.0` | `0.33.0` |\n| [opentelemetry-instrumentation-active_job](https://github.com/open-telemetry/opentelemetry-ruby-contrib) | `0.8.0` | `0.11.0` |\n| [maintenance_tasks](https://github.com/Shopify/maintenance_tasks) | `2.12.0` | `2.14.0` |\n| [stackprof](https://github.com/tmm1/stackprof) | `0.2.27` | `0.2.28` |\n| [concurrent-ruby](https://github.com/ruby-concurrency/concurrent-ruby) | `1.3.5` | `1.3.6` |\n\n\nUpdates `aws-actionmailer-ses` from 1.0.0 to 1.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/releases\"\u003eaws-actionmailer-ses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v1.1.0 - 2026-03-31\u003c/h2\u003e\n\u003cp\u003eTag release v1.1.0\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/blob/main/CHANGELOG.md\"\u003eaws-actionmailer-ses's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1.0 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - Support injecting a preconstructed client via \u003ccode\u003e:ses_client\u003c/code\u003e and \u003ccode\u003e:sesv2_client\u003c/code\u003e options.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/87d57bae1d2da68729c639da957c89b4f14eef02\"\u003e\u003ccode\u003e87d57ba\u003c/code\u003e\u003c/a\u003e Bumped version to v1.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/55de5a801bc2f819acda6521fa7efab8e72829bb\"\u003e\u003ccode\u003e55de5a8\u003c/code\u003e\u003c/a\u003e Allow precreated SESv2 client (issue \u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/7\"\u003e#7\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/14\"\u003e#14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/0e7a21034d43615e7765bb96c84f09f43fe80e1f\"\u003e\u003ccode\u003e0e7a210\u003c/code\u003e\u003c/a\u003e Scope down GitHub token permissions for ci.yml (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/9\"\u003e#9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/c2b91df4f58ed7da035c953ecfd4f9847da46ebb\"\u003e\u003ccode\u003ec2b91df\u003c/code\u003e\u003c/a\u003e Update CI to include 3.4 (\u003ca href=\"https://redirect.github.com/aws/aws-actionmailer-ses-ruby/issues/6\"\u003e#6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/aab2974887db3c4d525f9e18c3f1ae7c6513d230\"\u003e\u003ccode\u003eaab2974\u003c/code\u003e\u003c/a\u003e Update README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/commit/ce6af36916d5ab9224bf193690d98f539585f208\"\u003e\u003ccode\u003ece6af36\u003c/code\u003e\u003c/a\u003e Added next release section to the changelog. [ci skip]\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/aws/aws-actionmailer-ses-ruby/compare/v1.0.0...v1.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dotenv-rails` from 3.1.8 to 3.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/bkeepers/dotenv/releases\"\u003edotenv-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBoost app startup time by removing to_sentence usage by \u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle parentheses in variables in commands by \u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow warning when a env var was not overwritten by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/531\"\u003ebkeepers/dotenv#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix a few small issues by \u003ca href=\"https://github.com/grosser\"\u003e\u003ccode\u003e@​grosser\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/532\"\u003ebkeepers/dotenv#532\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ThomasCrambert\"\u003e\u003ccode\u003e@​ThomasCrambert\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/534\"\u003ebkeepers/dotenv#534\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/i7an\"\u003e\u003ccode\u003e@​i7an\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/pull/540\"\u003ebkeepers/dotenv#540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ehttps://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/34156bf400cd67387fa6ed9f146778f6a2f5f743\"\u003e\u003ccode\u003e34156bf\u003c/code\u003e\u003c/a\u003e Prepare for 3.2.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/ab478201bdb487bfebd9e89875fd4edcf19dc064\"\u003e\u003ccode\u003eab47820\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/531\"\u003e#531\u003c/a\u003e from grosser/grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/fae61202e432f39742e2592817cc7bb38f559852\"\u003e\u003ccode\u003efae6120\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/4f510f41073cabb9786e3a5ea57263933497e696\"\u003e\u003ccode\u003e4f510f4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/532\"\u003e#532\u003c/a\u003e from grosser/grosser/fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/959e1dac9d933a7ffe6a2ab17081f8235b7822a9\"\u003e\u003ccode\u003e959e1da\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/539\"\u003e#539\u003c/a\u003e from bkeepers/dependabot/github_actions/actions/check...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/041451e4ef7fd3a4ea604fcabef0cfb6fb5e79a3\"\u003e\u003ccode\u003e041451e\u003c/code\u003e\u003c/a\u003e Update spec message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/b300f262bdf1cfd6ac5215fd44baa771753702b9\"\u003e\u003ccode\u003eb300f26\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/5f4ca012b03c82343ad3f926e2fd281aa30a434b\"\u003e\u003ccode\u003e5f4ca01\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into grosser/warn\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/209dca47e453f7288aac9f31330e67e3f0b83e78\"\u003e\u003ccode\u003e209dca4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/bkeepers/dotenv/issues/540\"\u003e#540\u003c/a\u003e from i7an/handle-parentheses\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bkeepers/dotenv/commit/48c495683008c5dd1816a89329e59f8386324bb2\"\u003e\u003ccode\u003e48c4956\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into handle-parentheses\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/bkeepers/dotenv/compare/v3.1.8...v3.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `kt-paperclip` from 7.2.2 to 7.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kreeti/kt-paperclip/releases\"\u003ekt-paperclip's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v7.3.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix BOM for gd locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport versions of aws-sdk-s3 \u0026gt;= 1.197 by conditionally using \u003ccode\u003eAws::S3::TransferManager\u003c/code\u003e if available (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/155\"\u003e#155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeature - add option to return attachment attributes on destroy (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/91\"\u003e#91\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRuby 3.1 - Fix loading of Fog (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/135\"\u003e#135\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/139\"\u003e#139\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFrench Locale (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/134\"\u003e#134\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/oz-tal\"\u003e\u003ccode\u003e@​oz-tal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/134\"\u003ekreeti/kt-paperclip#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zz9pzza\"\u003e\u003ccode\u003e@​zz9pzza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/135\"\u003ekreeti/kt-paperclip#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unijewski\"\u003e\u003ccode\u003e@​unijewski\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/91\"\u003ekreeti/kt-paperclip#91\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lorennorman\"\u003e\u003ccode\u003e@​lorennorman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/146\"\u003ekreeti/kt-paperclip#146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cgunther\"\u003e\u003ccode\u003e@​cgunther\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/151\"\u003ekreeti/kt-paperclip#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jukra\"\u003e\u003ccode\u003e@​jukra\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/pull/155\"\u003ekreeti/kt-paperclip#155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ehttps://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/818f236aa6f2323bd0055bea664b33187d926377\"\u003e\u003ccode\u003e818f236\u003c/code\u003e\u003c/a\u003e Deperecate NEWS to OLD-NEWS, see release notes for correct and accurate list ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/a38ed66b5d08210a4326b0d78e2116d0946fa3c2\"\u003e\u003ccode\u003ea38ed66\u003c/code\u003e\u003c/a\u003e prepare for new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/8820cb221210bf04ca2de278dab594adfa46efe5\"\u003e\u003ccode\u003e8820cb2\u003c/code\u003e\u003c/a\u003e [Fix \u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/154\"\u003e#154\u003c/a\u003e] remove BOM from gd locale\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/cd5c4496d12894eafa218cb631c592b67c9c10a2\"\u003e\u003ccode\u003ecd5c449\u003c/code\u003e\u003c/a\u003e Fix S3 TransferManager to use configured client\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/f017c401218da5a1e106ed3dd964b51d601bac5b\"\u003e\u003ccode\u003ef017c40\u003c/code\u003e\u003c/a\u003e Make usage of Aws::S3::TransferManager conditional based on availability\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/233b4756745c2610988796a0059408a50d322b92\"\u003e\u003ccode\u003e233b475\u003c/code\u003e\u003c/a\u003e Support aws-sdk-s3 \u0026gt;= 1.196.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/e20e848c80ce16f18dae2162d5e00be0d9b51421\"\u003e\u003ccode\u003ee20e848\u003c/code\u003e\u003c/a\u003e Fix the use of deprecated methods from \u003ccode\u003eaws-sdk-s3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/5078ca1c33c8cb66865e6127152ac1e240b2bb0a\"\u003e\u003ccode\u003e5078ca1\u003c/code\u003e\u003c/a\u003e Fix frozen string literal warning in geometry.rb (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/151\"\u003e#151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/153e7dbe462de4f7f3ef42c67f95390e98e6cba7\"\u003e\u003ccode\u003e153e7db\u003c/code\u003e\u003c/a\u003e fix frozen string literal deprecation warning (\u003ca href=\"https://redirect.github.com/kreeti/kt-paperclip/issues/146\"\u003e#146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kreeti/kt-paperclip/commit/83dc8d92e63e4c360bb9f45af1cf3b63d99bed54\"\u003e\u003ccode\u003e83dc8d9\u003c/code\u003e\u003c/a\u003e Update LICENSE\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kreeti/kt-paperclip/compare/v7.2.2...v7.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth` from 2.1.3 to 2.1.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/omniauth/omniauth/releases\"\u003eomniauth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.1.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ruby 3.4 to CI by \u003ca href=\"https://github.com/tejasbubane\"\u003e\u003ccode\u003e@​tejasbubane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1142\"\u003eomniauth/omniauth#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd after_request_phase callback hook by \u003ca href=\"https://github.com/gerardo-navarro\"\u003e\u003ccode\u003e@​gerardo-navarro\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/omniauth/omniauth/pull/1147\"\u003eomniauth/omniauth#1147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ehttps://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eYou may now configure an after_request_phase callback on your omniauth builder instance. This callback will be run after the request phase before returning the request result.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/20ac5e05a39d58d18aca6419599f7176208f985d\"\u003e\u003ccode\u003e20ac5e0\u003c/code\u003e\u003c/a\u003e 3.1.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/3a249afad83e4522bd4761404cbdc89fd56a1079\"\u003e\u003ccode\u003e3a249af\u003c/code\u003e\u003c/a\u003e Add after_request_phase callback hook (\u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1147\"\u003e#1147\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/0bcfd5b25bf946422cd4d9c40c4f514121ac04d6\"\u003e\u003ccode\u003e0bcfd5b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/omniauth/omniauth/issues/1142\"\u003e#1142\u003c/a\u003e from tejasbubane/ruby-3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/09ee92e658878f31ab51f29e02d41296cfe36111\"\u003e\u003ccode\u003e09ee92e\u003c/code\u003e\u003c/a\u003e include cgi in test group due to removal of cookie\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/abfde9072cef0e4d89463daf6185ac68520087f7\"\u003e\u003ccode\u003eabfde90\u003c/code\u003e\u003c/a\u003e add dependency on logger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/omniauth/omniauth/commit/844548c8641d1a3b65c9062e67e073fa8bf39936\"\u003e\u003ccode\u003e844548c\u003c/code\u003e\u003c/a\u003e Add Ruby 3.4 to CI\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/omniauth/omniauth/compare/v2.1.3...v2.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-google-oauth2` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/releases\"\u003eomniauth-google-oauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md\"\u003eomniauth-google-oauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.2 - 2026-02-23\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRuby 4.0 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNothing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUnused \u003ccode\u003eIMAGE_SIZE_REGEXP\u003c/code\u003e constant.\u003c/li\u003e\n\u003cli\u003eDead \u003ccode\u003eskip_friends\u003c/code\u003e and \u003ccode\u003eskip_image_info\u003c/code\u003e options (Google+ was shut down in 2019).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced \u003ccode\u003eCGI.parse\u003c/code\u003e with \u003ccode\u003eURI.decode_www_form\u003c/code\u003e for Ruby 4.0 compatibility.\u003c/li\u003e\n\u003cli\u003eUpdated gemspec description to reference OmniAuth instead of OmniAuth 1.x.\u003c/li\u003e\n\u003cli\u003eModernized CI: bumped actions/checkout to v6, rake to 13.3, and rubocop to latest.\u003c/li\u003e\n\u003cli\u003eAdded edge case tests for \u003ccode\u003euid\u003c/code\u003e, \u003ccode\u003estrip_unnecessary_query_parameters\u003c/code\u003e, \u003ccode\u003everify_token\u003c/code\u003e, \u003ccode\u003everify_hd\u003c/code\u003e wildcard, and malformed JSON handling.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/5158faa94a620d8ec4d9ce400aabfef3a3844dd9\"\u003e\u003ccode\u003e5158faa\u003c/code\u003e\u003c/a\u003e Add release date to CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/c5f46005e0207d2e436cf0db37c85170cca04da7\"\u003e\u003ccode\u003ec5f4600\u003c/code\u003e\u003c/a\u003e Update docs and examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/4c14af8e1e6dc2615da908c50e4b0b757972922e\"\u003e\u003ccode\u003e4c14af8\u003c/code\u003e\u003c/a\u003e Backfill missing tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/e66d0bbe6ad91f9f5a60056dae2ebf850373f249\"\u003e\u003ccode\u003ee66d0bb\u003c/code\u003e\u003c/a\u003e Clean up dead code, modernize CI, and prep 1.2.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/b902e8e7585e8e3610040d9c770f2d4e90b6f132\"\u003e\u003ccode\u003eb902e8e\u003c/code\u003e\u003c/a\u003e Modernize CI: bump rubocop, checkout action, and tooling defaults\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/ac9a979db8ee097971d5d70c12142070c539d8ab\"\u003e\u003ccode\u003eac9a979\u003c/code\u003e\u003c/a\u003e Add Ruby 4.0 to CI (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/474\"\u003e#474\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/d3f1c912e438ccf6aba577c66772bf2e37373d73\"\u003e\u003ccode\u003ed3f1c91\u003c/code\u003e\u003c/a\u003e Add GitHub pages config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/253f023cdd8a5d5e05b3fed9aa00ae478a6c2997\"\u003e\u003ccode\u003e253f023\u003c/code\u003e\u003c/a\u003e Remove calendar scope on example app\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/baaf3b755ea1a02c9f811fd513b0fe90fdd2defb\"\u003e\u003ccode\u003ebaaf3b7\u003c/code\u003e\u003c/a\u003e chore(doc): update JavaScript example in README (\u003ca href=\"https://redirect.github.com/zquestz/omniauth-google-oauth2/issues/472\"\u003e#472\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/commit/dcea9d208416b53af0956d95ce54daa424d36490\"\u003e\u003ccode\u003edcea9d2\u003c/code\u003e\u003c/a\u003e Add Ruby 3.3 and 3.4 to CI matrix\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/zquestz/omniauth-google-oauth2/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `view_component` from 4.6.0 to 4.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/viewcomponent/view_component/releases\"\u003eview_component's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ViewComponent/view_component/blob/main/docs/CHANGELOG.md\"\u003eview_component's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix stale content cache when slots are accessed before \u003ccode\u003erender_in\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eJared Armstrong\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd rubocop-view_component to resources.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eAndy Waite\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix bug where inheritance of components with formatless templates improperly raised a NoMethodError.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eGitHub Copilot\u003c/em\u003e, \u003cem\u003eJoel Hawksley\u003c/em\u003e, \u003cem\u003eCameron Dutro\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/b89ff4feda61a44d066d6d58a67a4add318f944f\"\u003e\u003ccode\u003eb89ff4f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2610\"\u003e#2610\u003c/a\u003e from ViewComponent/release-4-7-0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/c187ebb9ea8e19b6cb5d988bb1c9eab7431173b2\"\u003e\u003ccode\u003ec187ebb\u003c/code\u003e\u003c/a\u003e lockfiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/a53f39d8b11efcc47df62617d1127849448207a7\"\u003e\u003ccode\u003ea53f39d\u003c/code\u003e\u003c/a\u003e release 4.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/59e97964530bb897b80c2a02ca08f0415a361319\"\u003e\u003ccode\u003e59e9796\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2609\"\u003e#2609\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/3f4277cbe0d9fb05024a79650650838beb962e46\"\u003e\u003ccode\u003e3f4277c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.41 to 0.9.42\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/42909f1ca36038a0564a47242012ca011f420840\"\u003e\u003ccode\u003e42909f1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2608\"\u003e#2608\u003c/a\u003e from ViewComponent/dependabot/bundler/rake-13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/40f8f68f487e5b1ff9089930900bd7c8ddbaf281\"\u003e\u003ccode\u003e40f8f68\u003c/code\u003e\u003c/a\u003e Bump rake from 13.4.1 to 13.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/62581fedb963feccb3f42a8669c3e04e737a780e\"\u003e\u003ccode\u003e62581fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2607\"\u003e#2607\u003c/a\u003e from ViewComponent/dependabot/bundler/yard-0.9.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/db4d53ca3a358f5645c521fdcac43d2a5de54d8e\"\u003e\u003ccode\u003edb4d53c\u003c/code\u003e\u003c/a\u003e Bump yard from 0.9.40 to 0.9.41\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ViewComponent/view_component/commit/51f833b18443da39d865be4e59522445b6998fb4\"\u003e\u003ccode\u003e51f833b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/viewcomponent/view_component/issues/2606\"\u003e#2606\u003c/a\u003e from ViewComponent/dependabot/bundler/minitest-6.0.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/viewcomponent/view_component/compare/v4.6.0...v4.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.5 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.5...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `terser` from 1.2.6 to 1.2.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ahorek/terser-ruby/blob/master/CHANGELOG.md\"\u003eterser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.7 (23 March 2026)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadded a new module option to enable minification of ES6 modules (default is false)\u003c/li\u003e\n\u003cli\u003eupdate TerserJS to [5.46.1]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/14243401aadac062e738fde86525f261c37b1782\"\u003e\u003ccode\u003e1424340\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/67\"\u003e#67\u003c/a\u003e from ahorek/terser5461\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/ae1669dba36b571932a25685765932103db89189\"\u003e\u003ccode\u003eae1669d\u003c/code\u003e\u003c/a\u003e terser 5.46.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/c8b1c3213847dfeb85e1769958ecf9753651e697\"\u003e\u003ccode\u003ec8b1c32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ahorek/terser-ruby/issues/64\"\u003e#64\u003c/a\u003e from ahorek/module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ahorek/terser-ruby/commit/3a614841138d5c1dcf79d6362e22ad5b0a0b19f3\"\u003e\u003ccode\u003e3a61484\u003c/code\u003e\u003c/a\u003e add a module option\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ahorek/terser-ruby/compare/1.2.6...1.2.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sidekiq` from 8.0.7 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sidekiq/sidekiq/blob/main/Changes.md\"\u003esidekiq's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix edge case leading to duplicate, concurrent execution \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\nIf 2 Capsules process jobs from the same queue, long-running\njobs could run in parallel during process shutdown.\u003c/li\u003e\n\u003cli\u003e[SECURITY] Remove as much YAML usage as possible. \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\nLocalization files in \u003ccode\u003eweb/locales\u003c/code\u003e are now manually parsed.\nSidekiq::CLI will now only require YAML if you use a \u003ccode\u003e-C\u003c/code\u003e .yml file.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInitial release for \u003ccode\u003ekiq\u003c/code\u003e, Sidekiq's official terminal UI:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003ebundle exec kiq\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUse REDIS_URL or REDIS_PROVIDER to point \u003ccode\u003ekiq\u003c/code\u003e to Redis.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMutation during iteration in \u003ccode\u003eSortedSet#each\u003c/code\u003e caused it to miss half of the jobs \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6936\"\u003e#6936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix edge case resulting in nil crash on /busy page \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6954\"\u003e#6954\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDEPRECATION\u003c/strong\u003e \u003ccode\u003erequire 'sidekiq/testing'\u003c/code\u003e and\n\u003ccode\u003erequire 'sidekiq/testing/inline'\u003c/code\u003e.\nAdd new \u003ccode\u003eSidekiq.testing!(mode)\u003c/code\u003e API \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6931\"\u003e#6931\u003c/a\u003e\nRequiring code should not enable process-wide changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003e# Old, implicit\nrequire \u0026quot;sidekiq/testing\u0026quot;\nrequire \u0026quot;sidekiq/testing/inline\u0026quot;\n# New, more explicit\nSidekiq.testing!(:fake)\nSidekiq.testing!(:inline)\n\u003c/code\u003e\u003c/pre\u003e\n\u003cul\u003e\n\u003cli\u003eFix race condition with Stop button in UI \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6935\"\u003e#6935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix javascript error handler \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6893\"\u003e#6893\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eretry_for\u003c/code\u003e and \u003ccode\u003eretry\u003c/code\u003e are now mutually exclusive [#6878, Saidbek]\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eperform_inline\u003c/code\u003e now enforces \u003ccode\u003estrict_args!\u003c/code\u003e [#6718, Saidbek]\u003c/li\u003e\n\u003cli\u003eIntegrate Herb linting for ERB templates [#6760, Saidbek]\u003c/li\u003e\n\u003cli\u003eRemove CSRF code, use \u003ccode\u003eSec-Fetch-Site\u003c/code\u003e header [#6874, deve1212]\u003c/li\u003e\n\u003cli\u003eAllow custom Web UI \u003ccode\u003eassets_path\u003c/code\u003e for CDN purposes [#6865, stanhu]\u003c/li\u003e\n\u003cli\u003eUpgrade to connection_pool 3.0\u003c/li\u003e\n\u003cli\u003eAllow idle connection reaping after N seconds.\nYou can activate this \u003cstrong\u003ebeta\u003c/strong\u003e feature like below.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/52a08748a39030aa22e73861e1fd1bbc60bf3dea\"\u003e\u003ccode\u003e52a0874\u003c/code\u003e\u003c/a\u003e Bump, prep [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/03ca0473816dfa26eb80ae2660ab316b9ff738fb\"\u003e\u003ccode\u003e03ca047\u003c/code\u003e\u003c/a\u003e Dont call bulk_requeue when stopping Capsule, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6379\"\u003e#6379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/90d1aeed267a19cc0dfa1d2189b8d184ff5bb995\"\u003e\u003ccode\u003e90d1aee\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;add: info tag when dead queue is at max (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6976\"\u003e#6976\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/a5ae98b83aad1758ec6d7fa26e6f78562abc50cf\"\u003e\u003ccode\u003ea5ae98b\u003c/code\u003e\u003c/a\u003e add: info tag when dead queue is at max (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6976\"\u003e#6976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/fef6cdf5dc2aeaf579f242368ad4beb0675629a5\"\u003e\u003ccode\u003efef6cdf\u003c/code\u003e\u003c/a\u003e Reduce unnecessary exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/30723ca77f5df695079fefd562cea803ce2d5420\"\u003e\u003ccode\u003e30723ca\u003c/code\u003e\u003c/a\u003e fix: improve pagination active page visibility in dark mode (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/554de9f673f6555b760bf707ad88573db9da44e1\"\u003e\u003ccode\u003e554de9f\u003c/code\u003e\u003c/a\u003e pro changes [ciskip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/25afb7938feeeb4b4f80c979abde89164586d3c6\"\u003e\u003ccode\u003e25afb79\u003c/code\u003e\u003c/a\u003e Remove YAML usage, \u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6950\"\u003e#6950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/96e87996a9a071dc183f85bae513fe0b140cbc56\"\u003e\u003ccode\u003e96e8799\u003c/code\u003e\u003c/a\u003e Update error_handler proc to include config parameter (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6974\"\u003e#6974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sidekiq/sidekiq/commit/d9a3c83e999182146a06390cfcd90c462f3310e8\"\u003e\u003ccode\u003ed9a3c83\u003c/code\u003e\u003c/a\u003e Add error_handler breaking change in upgrade docs (\u003ca href=\"https://redirect.github.com/sidekiq/sidekiq/issues/6973\"\u003e#6973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sidekiq/sidekiq/compare/v8.0.7...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `geocoder` from 1.8.5 to 1.8.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/alexreisner/geocoder/blob/master/CHANGELOG.md\"\u003egeocoder's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.6 (2025 Sep 21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for IPInfo Lite lookup (thanks github.com/iltempo).\u003c/li\u003e\n\u003cli\u003eVarious minor fixes and improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/d3515db46c5785db8cd48dbf94af123a2c99b8a9\"\u003e\u003ccode\u003ed3515db\u003c/code\u003e\u003c/a\u003e Prepare for release of gem version 1.8.6.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/737d16f277f81aabe73e2dfe466e2ba84fef188a\"\u003e\u003ccode\u003e737d16f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1694\"\u003e#1694\u003c/a\u003e from Intrepidd/update-data-gouv-fr-domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/4b50c085eea4de4f453eab2e8dc6faf7b3824420\"\u003e\u003ccode\u003e4b50c08\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1695\"\u003e#1695\u003c/a\u003e from cprodhomme/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/31545ee756f1230a063e86458b3dadbac9b7e7b4\"\u003e\u003ccode\u003e31545ee\u003c/code\u003e\u003c/a\u003e Update README_API_GUIDE.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/3a90b5aa6c708945cf181f16a182ca232f668c4d\"\u003e\u003ccode\u003e3a90b5a\u003c/code\u003e\u003c/a\u003e Update BAN domain\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/b2c0aa5526f90209883e3ca64b73d9559d21f729\"\u003e\u003ccode\u003eb2c0aa5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1691\"\u003e#1691\u003c/a\u003e from TheRusskiy/radius-column-arel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/cd58cab7fd167d641927fe4a083963fcf5cd08df\"\u003e\u003ccode\u003ecd58cab\u003c/code\u003e\u003c/a\u003e add \u0026quot;arel\u0026quot; to near_test spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/63ca4702ccffe776b146c28d289f7449d25946ee\"\u003e\u003ccode\u003e63ca470\u003c/code\u003e\u003c/a\u003e radius column can be an instance of Arel.sql\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/eaf85fe4de045c2ad3e035f560d6755e82646bee\"\u003e\u003ccode\u003eeaf85fe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexreisner/geocoder/issues/1688\"\u003e#1688\u003c/a\u003e from skillstopractice/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexreisner/geocoder/commit/00369bb35a29a86f54e6fea516ecf9842e5f855f\"\u003e\u003ccode\u003e00369bb\u003c/code\u003e\u003c/a\u003e Update tests to use data['place_name'] for Mapbox\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexreisner/geocoder/compare/v1.8.5...v1.8.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pundit` from 2.5.0 to 2.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/varvet/pundit/blob/main/CHANGELOG.md\"\u003epundit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.2 (2025-09-24)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003econfig/rubocop-rspec.yml\u003c/code\u003e back from accidentally being excluded \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.5.1 (2025-09-12)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequiring only \u003ccode\u003epundit/rspec\u003c/code\u003e no longer raises an error in Active Support \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/857\"\u003e#857\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/2d665d67a26f794987df926e49676948fe115289\"\u003e\u003ccode\u003e2d665d6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/867\"\u003e#867\u003c/a\u003e from varvet/kbs/release-v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/7ff48a83790aef27bd89fa4da6a0a238599bca2d\"\u003e\u003ccode\u003e7ff48a8\u003c/code\u003e\u003c/a\u003e Bump to v2.5.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/674abac197c7ecc000fd25a4542344d38c998535\"\u003e\u003ccode\u003e674abac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/866\"\u003e#866\u003c/a\u003e from varvet/kbs/add-rubocop-back\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/923eebf39ccd6f8095a5c4270953e7a19d6d16a6\"\u003e\u003ccode\u003e923eebf\u003c/code\u003e\u003c/a\u003e Point changelog to PR\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/47668502881e3abed7dd004ca19fa11d66b23b6f\"\u003e\u003ccode\u003e4766850\u003c/code\u003e\u003c/a\u003e Add rubocop config file back to gem release files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/27a840bedadf0ef3d66f1857edd966c2e01cc18e\"\u003e\u003ccode\u003e27a840b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/863\"\u003e#863\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/381b202dd2e11c5eb0ea1134d29f85331a01d643\"\u003e\u003ccode\u003e381b202\u003c/code\u003e\u003c/a\u003e +3.4 -3.1 (EOL)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/4bb6a67819572bd9431d30048fbab4c9685cfbf2\"\u003e\u003ccode\u003e4bb6a67\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/varvet/pundit/issues/862\"\u003e#862\u003c/a\u003e from varvet/kbs/fix-build-pipeline\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/6ceca0d2ab84d2240e6422e7b14d208ad10e3304\"\u003e\u003ccode\u003e6ceca0d\u003c/code\u003e\u003c/a\u003e Attempt code quality upload to qlty.sh instead\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/varvet/pundit/commit/82d918a4c4c4ab393f662a32e94028d6b086285d\"\u003e\u003ccode\u003e82d918a\u003c/code\u003e\u003c/a\u003e Bump to v2.5.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/varvet/pundit/compare/v2.5.0...v2.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ahoy_matey` from 5.4.0 to 5.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ankane/ahoy/blob/master/CHANGELOG.md\"\u003eahoy_matey's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.5.0 (2026-04-08)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed error with \u003ccode\u003eAhoy::Tracker\u003c/code\u003e outside of requests\u003c/li\u003e\n\u003cli\u003eDropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.2 (2026-03-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed cookie deletion with \u003ccode\u003ecookie_domain\u003c/code\u003e and \u003ccode\u003ecookie_options\u003c/code\u003e options\u003c/li\u003e\n\u003cli\u003eUpdated Ahoy.js to 0.4.5\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.4.1 (2025-09-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed deprecation warning with Rack 3.1+\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/0934ed94a4a7263f682eefb47bd78cdc05d33c5d\"\u003e\u003ccode\u003e0934ed9\u003c/code\u003e\u003c/a\u003e Version bump to 5.5.0 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/1881c47e52d10deb1989964acf9809531a937aaf\"\u003e\u003ccode\u003e1881c47\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/bb10d30342311ccb8cfc4279555189d56129f6ce\"\u003e\u003ccode\u003ebb10d30\u003c/code\u003e\u003c/a\u003e Fixed error with Ahoy::Tracker outside of request when cookies disabled - res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/3b4e45fde58880d4432e1a5ab8dfadd41d617117\"\u003e\u003ccode\u003e3b4e45f\u003c/code\u003e\u003c/a\u003e Dropped support for Ruby \u0026lt; 3.3 and Rails \u0026lt; 7.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/41d7834a3af1553d8cf890cf231e4fdb53c196d9\"\u003e\u003ccode\u003e41d7834\u003c/code\u003e\u003c/a\u003e Updated readme [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/2186f3857f702c6c5fa3e0d80310d852de2cc8f0\"\u003e\u003ccode\u003e2186f38\u003c/code\u003e\u003c/a\u003e Updated license year [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/eed4fdad924261f9f57b87032e760a06fd4dcd05\"\u003e\u003ccode\u003eeed4fda\u003c/code\u003e\u003c/a\u003e Version bump to 5.4.2 [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/f73c04e68fe8b884140cd659acee170224b19ec3\"\u003e\u003ccode\u003ef73c04e\u003c/code\u003e\u003c/a\u003e Updated changelog [skip ci]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/7c50688aa1e4d56545be421a9427c36c51476383\"\u003e\u003ccode\u003e7c50688\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with path option\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ankane/ahoy/commit/5a801f44d8bd5e1ab6f8e9f8923f8ef39eaa6e75\"\u003e\u003ccode\u003e5a801f4\u003c/code\u003e\u003c/a\u003e Fixed cookie deletion with cookie_domain option - fixes \u003ca href=\"https://redirect.github.com/ankane/ahoy/issues/581\"\u003e#581\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ankane/ahoy/compare/v5.4.0...v5.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `i18n-js` from 4.2.3 to 4.2.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fnando/i18n-js/blob/main/CHANGELOG.md\"\u003ei18n-js's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/f8fb0dc0b01e7e639a6eb5dd875adbaa78858d8f\"\u003e\u003ccode\u003ef8fb0dc\u003c/code\u003e\u003c/a\u003e Bump up version (4.2.4).\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/2cbea21df1ac16685a4e974716296853eccc0d49\"\u003e\u003ccode\u003e2cbea21\u003c/code\u003e\u003c/a\u003e Remove benchmark gem (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9f99172d197b586dab34f4cf6a08a1df9703222f\"\u003e\u003ccode\u003e9f99172\u003c/code\u003e\u003c/a\u003e Update matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/9096c6e63bbbc24900bb10cfd0d42b6a89470c1c\"\u003e\u003ccode\u003e9096c6e\u003c/code\u003e\u003c/a\u003e Fix rubocop warnings.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/237b69b34f73873c2a3c753c45b208e670d15a31\"\u003e\u003ccode\u003e237b69b\u003c/code\u003e\u003c/a\u003e Update --quiet param description (\u003ca href=\"https://redirect.github.com/fnando/i18n-js/issues/730\"\u003e#730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/1f3305ffa531614de22070ec3a0acbb592902636\"\u003e\u003ccode\u003e1f3305f\u003c/code\u003e\u003c/a\u003e Update action.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/674cb0781bdba259e7a25fcd2df6f8dd21dc5276\"\u003e\u003ccode\u003e674cb07\u003c/code\u003e\u003c/a\u003e Fix rubocop warning.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/877e6f1de96126021cce39f802377ffeead79ff4\"\u003e\u003ccode\u003e877e6f1\u003c/code\u003e\u003c/a\u003e Update actions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/7e27159f535643bc3080dce132a5ae953c4034ea\"\u003e\u003ccode\u003e7e27159\u003c/code\u003e\u003c/a\u003e Require ruby 3.2+.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fnando/i18n-js/commit/58c32fdc576a499eb2433bd9d633d537f8a696d8\"\u003e\u003ccode\u003e58c32fd\u003c/code\u003e\u003c/a\u003e Disable rubocop rule.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fnando/i18n-js/compare/v4.2.3...v4.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.1 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.1...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rexml` from 3.4.2 to 3.4.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/releases\"\u003erexml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eREXML 3.4.4 - 2025-09-10\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eREXML 3.4.3 - 2025-09-07\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJason Thomas\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/rexml/blob/master/NEWS.md\"\u003erexml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.4.4 - 2025-09-10 {#version-3-4-4}\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/296\"\u003eGH-296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003eGH-295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Joe Rafaniello\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJoe Rafaniello\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.4.3 - 2025-09-07 {#version-3-4-3}\u003c/h2\u003e\n\u003ch3\u003eImprovement\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReject no root element XML as an invalid XML\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/289\"\u003eGH-289\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003eGH-291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Sutou Kouhei\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/287\"\u003eGH-287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003eGH-288\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch by NAITOH Jun\u003c/li\u003e\n\u003cli\u003eReported by Jason Thomas\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eThanks\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNAITOH Jun\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSutou Kouhei\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eJason Thomas\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/4f32ea33bc3f71cced67487659beef58edcf6d56\"\u003e\u003ccode\u003e4f32ea3\u003c/code\u003e\u003c/a\u003e Add 3.4.4 entry (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/297\"\u003e#297\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/37cde3f4e660f9748f90a933daf7a9e51337d013\"\u003e\u003ccode\u003e37cde3f\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003eREXML::Document.new(\u0026quot;\u0026quot;)\u003c/code\u003e for backward compatibility (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/4ffe211b501614e769a8bf37d63a7037bb5d2e73\"\u003e\u003ccode\u003e4ffe211\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/822530c70f898bd33c075622fe068c6d6433e6c9\"\u003e\u003ccode\u003e822530c\u003c/code\u003e\u003c/a\u003e Add 3.4.3 entry (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/6ba286cfd402e4040627615e2623f5b097261543\"\u003e\u003ccode\u003e6ba286c\u003c/code\u003e\u003c/a\u003e Reject no root element XML as an invalid XML (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/b5b148ed3c8a02fb53e971e312cee94b5301555a\"\u003e\u003ccode\u003eb5b148e\u003c/code\u003e\u003c/a\u003e The Zlib::GzipReader in JRuby does not behave as expected with REXML, so the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/1531862d18ec3ecd659060d60b8bb49accee5a42\"\u003e\u003ccode\u003e1531862\u003c/code\u003e\u003c/a\u003e Fixed an issue with \u003ccode\u003eIOSource#read_until\u003c/code\u003e when reaching the end of a file (\u003ca href=\"https://redirect.github.com/ruby/rexml/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/rexml/commit/185bdc737da406ba4f9564726849ad3477858eb2\"\u003e\u003ccode\u003e185bdc7\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ruby/rexml/compare/v3.4.2...v3.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flipper-redis` from 1.3.6 to 1.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/flippercloud/flipper/releases\"\u003eflipper-redis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.4.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/cache from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/961\"\u003eflippercloud/flipper#961\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd config to disable the Fully Enable button by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/979\"\u003eflippercloud/flipper#979\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd sync mode bypass to Strict adapter by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/982\"\u003eflippercloud/flipper#982\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip ETag header on cache_bust to prevent stale webhook syncs by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/987\"\u003eflippercloud/flipper#987\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/flippercloud/flipper/compare/v1.4.0...v1.4.1\"\u003ehttps://github.com/flippercloud/flipper/compare/v1.4.0...v1.4.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove models to their own files by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/944\"\u003eflippercloud/flipper#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd kwarg passing for get_all and cache buster for webhook sync by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/945\"\u003eflippercloud/flipper#945\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways poll even for webhook config by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/946\"\u003eflippercloud/flipper#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCloud get_all etag support by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/947\"\u003eflippercloud/flipper#947\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix sync behavior when remote expression value is set to nil by \u003ca href=\"https://github.com/jdnvn\"\u003e\u003ccode\u003e@​jdnvn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/949\"\u003eflippercloud/flipper#949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpression sync by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/950\"\u003eflippercloud/flipper#950\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eShut down polling and adjust poll interval based on headers by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flippercloud/flipper/pull/948\"\u003eflippercloud/flipper#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes confirmation trigger for disable by \u003ca href=\"https://github.com/jnunemaker\"\u003e\u003ccode\u003e@​jnunemaker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/flip...\n\n_Description has been truncated_","html_url":"https://github.com/CircuitVerse/CircuitVerse/pull/7320","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/CircuitVerse%2FCircuitVerse/issues/7320","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7320/packages"}},{"old_version":"1.6.2","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-04-15T02:17:47.000Z","version_change":"1.6.2 → 1.6.3","issue":{"uuid":"4265830819","node_id":"PR_kwDODdTws87Sfm-O","number":3207,"state":"open","title":"Bump the bundler group across 1 directory with 116 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T02:17:47.000Z","updated_at":"2026-04-22T02:21:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"bundler","update_count":116,"packages":[{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"devise","old_version":"4.9.4","new_version":"5.0.3","repository_url":"https://github.com/heartcombo/devise"},{"name":"govuk-components","old_version":"5.11.3","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-components"},{"name":"govuk_design_system_formbuilder","old_version":"5.11.0","new_version":"6.1.0","repository_url":"https://github.com/x-govuk/govuk-form-builder"},{"name":"haml-rails","old_version":"2.1.0","new_version":"3.0.0","repository_url":"https://github.com/haml/haml-rails"},{"name":"oauth2","old_version":"2.0.17","new_version":"2.0.18","repository_url":"https://github.com/ruby-oauth/oauth2"},{"name":"omniauth-rails_csrf_protection","old_version":"1.0.2","new_version":"2.0.1","repository_url":"https://github.com/cookpad/omniauth-rails_csrf_protection"},{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"prometheus_exporter","old_version":"2.3.0","new_version":"2.3.1","repository_url":"https://github.com/discourse/prometheus_exporter"},{"name":"puma","old_version":"7.0.4","new_version":"8.0.0","repository_url":"https://github.com/puma/puma"},{"name":"rails","old_version":"8.0.3","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"sentry-rails","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"sentry-sidekiq","old_version":"5.27.1","new_version":"6.5.0","repository_url":"https://github.com/getsentry/sentry-ruby"},{"name":"haml_lint","old_version":"0.66.0","new_version":"0.73.0","repository_url":"https://github.com/sds/haml-lint"},{"name":"rubocop","old_version":"1.80.2","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"dotenv-rails","old_version":"3.1.8","new_version":"3.2.0","repository_url":"https://github.com/bkeepers/dotenv"},{"name":"pry-byebug","old_version":"3.11.0","new_version":"3.12.0","repository_url":"https://github.com/deivid-rodriguez/pry-byebug"},{"name":"sidekiq","old_version":"8.0.7","new_version":"8.1.2","repository_url":"https://github.com/sidekiq/sidekiq"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"axe-core-rspec","old_version":"4.10.3","new_version":"4.11.1","repository_url":"https://github.com/dequelabs/axe-core-gems"},{"name":"brakeman","old_version":"7.1.0","new_version":"8.0.4","repository_url":"https://github.com/presidentbeef/brakeman"},{"name":"i18n-tasks","old_version":"1.0.15","new_version":"1.1.2","repository_url":"https://github.com/glebm/i18n-tasks"},{"name":"rspec-rails","old_version":"8.0.2","new_version":"8.0.4","repository_url":"https://github.com/rspec/rspec-rails"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-performance","old_version":"1.26.0","new_version":"1.26.1","repository_url":"https://github.com/rubocop/rubocop-performance"},{"name":"rubocop-rails","old_version":"2.33.3","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"},{"name":"selenium-webdriver","old_version":"4.35.0","new_version":"4.43.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"shoulda-matchers","old_version":"6.5.0","new_version":"7.0.1","repository_url":"https://github.com/thoughtbot/shoulda-matchers"},{"name":"vcr","old_version":"6.3.1","new_version":"6.4.0","repository_url":"https://github.com/vcr/vcr"},{"name":"webmock","old_version":"3.25.1","new_version":"3.26.2","repository_url":"https://github.com/bblimke/webmock"},{"name":"faker","old_version":"3.5.2","new_version":"3.7.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"pry","old_version":"0.15.2","new_version":"0.16.0","repository_url":"https://github.com/pry/pry"},{"name":"listen","old_version":"3.9.0","new_version":"3.10.0","repository_url":"https://github.com/guard/listen"},{"name":"spring","old_version":"4.4.0","new_version":"4.4.2","repository_url":"https://github.com/rails/spring"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"net-imap","old_version":"0.5.10","new_version":"0.6.3","repository_url":"https://github.com/ruby/net-imap"},{"name":"factory_bot","old_version":"6.5.5","new_version":"6.5.6","repository_url":"https://github.com/thoughtbot/factory_bot"},{"name":"faraday-follow_redirects","old_version":"0.3.0","new_version":"0.5.0","repository_url":"https://github.com/tisba/faraday-follow-redirects"},{"name":"json-jwt","old_version":"1.16.7","new_version":"1.17.0","repository_url":"https://github.com/nov/json-jwt"},{"name":"rack-oauth2","old_version":"2.2.1","new_version":"2.3.0","repository_url":"https://github.com/nov/rack-oauth2"},{"name":"rspec","old_version":"3.13.1","new_version":"3.13.2","repository_url":"https://github.com/rspec/rspec"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the bundler group with 43 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [devise](https://github.com/heartcombo/devise) | `4.9.4` | `5.0.3` |\n| [govuk-components](https://github.com/x-govuk/govuk-components) | `5.11.3` | `6.1.0` |\n| [govuk_design_system_formbuilder](https://github.com/x-govuk/govuk-form-builder) | `5.11.0` | `6.1.0` |\n| [haml-rails](https://github.com/haml/haml-rails) | `2.1.0` | `3.0.0` |\n| [oauth2](https://github.com/ruby-oauth/oauth2) | `2.0.17` | `2.0.18` |\n| [omniauth-rails_csrf_protection](https://github.com/cookpad/omniauth-rails_csrf_protection) | `1.0.2` | `2.0.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.6.2` | `1.6.3` |\n| [prometheus_exporter](https://github.com/discourse/prometheus_exporter) | `2.3.0` | `2.3.1` |\n| [puma](https://github.com/puma/puma) | `7.0.4` | `8.0.0` |\n| [rails](https://github.com/rails/rails) | `8.0.3` | `8.1.3` |\n| [sentry-rails](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) | `5.27.1` | `6.5.0` |\n| [haml_lint](https://github.com/sds/haml-lint) | `0.66.0` | `0.73.0` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.80.2` | `1.86.1` |\n| [dotenv-rails](https://github.com/bkeepers/dotenv) | `3.1.8` | `3.2.0` |\n| [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) | `3.11.0` | `3.12.0` |\n| [sidekiq](https://github.com/sidekiq/sidekiq) | `8.0.7` | `8.1.2` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [axe-core-rspec](https://github.com/dequelabs/axe-core-gems) | `4.10.3` | `4.11.1` |\n| [brakeman](https://github.com/presidentbeef/brakeman) | `7.1.0` | `8.0.4` |\n| [i18n-tasks](https://github.com/glebm/i18n-tasks) | `1.0.15` | `1.1.2` |\n| [rspec-rails](https://github.com/rspec/rspec-rails) | `8.0.2` | `8.0.4` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-performance](https://github.com/rubocop/rubocop-performance) | `1.26.0` | `1.26.1` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.3` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.35.0` | `4.43.0` |\n| [shoulda-matchers](https://github.com/thoughtbot/shoulda-matchers) | `6.5.0` | `7.0.1` |\n| [vcr](https://github.com/vcr/vcr) | `6.3.1` | `6.4.0` |\n| [webmock](https://github.com/bblimke/webmock) | `3.25.1` | `3.26.2` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.2` | `3.7.1` |\n| [pry](https://github.com/pry/pry) | `0.15.2` | `0.16.0` |\n| [listen](https://github.com/guard/listen) | `3.9.0` | `3.10.0` |\n| [spring](https://github.com/rails/spring) | `4.4.0` | `4.4.2` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [net-imap](https://github.com/ruby/net-imap) | `0.5.10` | `0.6.3` |\n| [factory_bot](https://github.com/thoughtbot/factory_bot) | `6.5.5` | `6.5.6` |\n| [faraday-follow_redirects](https://github.com/tisba/faraday-follow-redirects) | `0.3.0` | `0.5.0` |\n| [json-jwt](https://github.com/nov/json-jwt) | `1.16.7` | `1.17.0` |\n| [rack-oauth2](https://github.com/nov/rack-oauth2) | `2.2.1` | `2.3.0` |\n| [rspec](https://github.com/rspec/rspec) | `3.13.1` | `3.13.2` |\n\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `devise` from 4.9.4 to 5.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/releases\"\u003edevise's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.0.3\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.3/CHANGELOG.md#503---2026-03-16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.2\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.2/CHANGELOG.md#502---2026-02-18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.1/CHANGELOG.md#501---2026-02-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0/CHANGELOG.md#500---2026-01-23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.0.0.rc\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\"\u003ehttps://github.com/heartcombo/devise/blob/v5.0.0.rc/CHANGELOG.md#500rc---2025-12-31\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/heartcombo/devise/blob/main/CHANGELOG.md\"\u003edevise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003e5.0.3 - 2026-03-16\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esecurity fixes\n\u003cul\u003e\n\u003cli\u003eFix race condition vulnerability on confirmable \u0026quot;change email\u0026quot; which would allow confirming an email they don't own CVE-2026-32700 \u003ca href=\"https://github.com/heartcombo/devise/security/advisories/GHSA-57hq-95w6-v4fc\"\u003eGHSA-57hq-95w6-v4fc\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5783\"\u003e#5783\u003c/a\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5784\"\u003e#5784\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.2 - 2026-02-18\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eenhancements\n\u003cul\u003e\n\u003cli\u003eAllow resource class scopes to override the global configuration for \u003ccode\u003esign_in_after_change_password\u003c/code\u003e behaviour. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5825\"\u003e#5825\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cem\u003eNote\u003c/em\u003e: some users ran into an issue with this change because \u003ccode\u003eRegistrationsController\u003c/code\u003e now relies on a setting from the \u003ccode\u003e:registerable\u003c/code\u003e module. These users were configuring their own routes pointing to the \u003ccode\u003eRegistrationsController\u003c/code\u003e for resource edit/update actions mostly, without relying on the other registration actions (e.g. user sign up.), so they omitted \u003ccode\u003e:registerable\u003c/code\u003e from the model declaration. While using just a portion of the controller functionality is a valid use for \u003ccode\u003e:registerable\u003c/code\u003e (or any module really), the module must still be declared in the model, much like the other modules must be declared if you plan on using just a portion of their behavior. Please check \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5828#issuecomment-3926822788\"\u003ethis issue\u003c/a\u003e for more info.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller, to allow it to be customized by users. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5826\"\u003e#5826\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.1 - 2026-02-13\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ebug fixes\n\u003cul\u003e\n\u003cli\u003eFix translation issue with German \u003ccode\u003eE-Mail\u003c/code\u003e on invalid authentication messages caused by previous fix for incorrect grammar \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5822\"\u003e#5822\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e5.0.0 - 2026-01-23\u003c/h3\u003e\n\u003cp\u003eno changes\u003c/p\u003e\n\u003ch3\u003e5.0.0.rc - 2025-12-31\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ebreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Ruby \u0026lt; 2.7\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support to Rails \u0026lt; 7.0\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003e:bypass\u003c/code\u003e option from \u003ccode\u003esign_in\u003c/code\u003e helper, use \u003ccode\u003ebypass_sign_in\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003edevise_error_messages!\u003c/code\u003e helper, use \u003ccode\u003erender \u0026quot;devise/shared/error_messages\u0026quot;, resource: resource\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003escope\u003c/code\u003e second argument from \u003ccode\u003esign_in(resource, :admin)\u003c/code\u003e controller test helper, use \u003ccode\u003esign_in(resource, scope: :admin)\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::TestHelpers\u003c/code\u003e, use \u003ccode\u003eDevise::Test::ControllerHelpers\u003c/code\u003e instead. \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5803\"\u003e#5803\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise::Models::Authenticatable::BLACKLIST_FOR_SERIALIZATION\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5598\"\u003e#5598\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003eDevise.activerecord51?\u003c/code\u003e method.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003eSecretKeyFinder\u003c/code\u003e and use \u003ccode\u003eapp.secret_key_base\u003c/code\u003e as the default secret key for \u003ccode\u003eDevise.secret_key\u003c/code\u003e if a custom \u003ccode\u003eDevise.secret_key\u003c/code\u003e is not provided.\u003c/p\u003e\n\u003cp\u003eThis is potentially a breaking change because Devise previously used the following order to find a secret key:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eapp.credentials.secret_key_base \u0026gt; app.secrets.secret_key_base \u0026gt; application.config.secret_key_base \u0026gt; application.secret_key_base\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eNow, it always uses \u003ccode\u003eapplication.secret_key_base\u003c/code\u003e. Make sure you're using the same secret key after the upgrade; otherwise, previously generated tokens for \u003ccode\u003erecoverable\u003c/code\u003e, \u003ccode\u003elockable\u003c/code\u003e, and \u003ccode\u003econfirmable\u003c/code\u003e will be invalid.\n\u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5645\"\u003e#5645\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange password instructions button label on devise view from \u003ccode\u003eSend me reset password instructions\u003c/code\u003e to \u003ccode\u003eSend me password reset instructions\u003c/code\u003e \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5515\"\u003e#5515\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange \u003ccode\u003e\u0026lt;br\u0026gt;\u003c/code\u003e tags separating form elements to wrapping them in \u003ccode\u003e\u0026lt;p\u0026gt;\u003c/code\u003e tags \u003ca href=\"https://redirect.github.com/heartcombo/devise/pull/5494\"\u003e#5494\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReplace \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e with \u003ccode\u003e[data-turbo-temporary]\u003c/code\u003e on \u003ccode\u003edevise/shared/error_messages\u003c/code\u003e partial. This has been \u003ca href=\"https://github.com/hotwired/turbo/releases/tag/v7.3.0\"\u003edeprecated by Turbo since v7.3.0 (released on Mar 1, 2023)\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you are using an older version of Turbo and the default devise template, you'll need to copy it over to your app and change that back to \u003ccode\u003e[data-turbo-cache=false]\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eenhancements\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Rails 8 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/2f809205b2a9112767e68e1a5666c649a42609c6\"\u003e\u003ccode\u003e2f80920\u003c/code\u003e\u003c/a\u003e Release v5.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/53347074021b38590653b95523f9b7113e5dcfdc\"\u003e\u003ccode\u003e5334707\u003c/code\u003e\u003c/a\u003e Add CVE to changelog [ci skip]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/02527772bd9adbc3357d9c62fbc16e73e438121d\"\u003e\u003ccode\u003e0252777\u003c/code\u003e\u003c/a\u003e Fix race condition vulnerability, by ensuring the \u003ccode\u003eunconfirmed_email\u003c/code\u003e is alwa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/879f79fceaf2ec6525219ee7bb4057ce4db65729\"\u003e\u003ccode\u003e879f79f\u003c/code\u003e\u003c/a\u003e Bundle update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/0f4493bd0302f85d1662b71c4f2145268fecc200\"\u003e\u003ccode\u003e0f4493b\u003c/code\u003e\u003c/a\u003e Configure default permissions as read-only for the workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/8c785761bd3c717793f0da4146dd630865568567\"\u003e\u003ccode\u003e8c78576\u003c/code\u003e\u003c/a\u003e Ignore test/** folder for GH default code scanning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/c9e655e13253dc53e3c0981a8345f134bcda1fc5\"\u003e\u003ccode\u003ec9e655e\u003c/code\u003e\u003c/a\u003e Bundle update, clear dependabot security issues\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/3fd061095084d8f9d3f8c995c46caabcd15640fd\"\u003e\u003ccode\u003e3fd0610\u003c/code\u003e\u003c/a\u003e Add a note to the changelog about an edge case issue some users ran into\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/5b008ed51c0df3223cf727e7ad07378d6329b12f\"\u003e\u003ccode\u003e5b008ed\u003c/code\u003e\u003c/a\u003e Release v5.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/heartcombo/devise/commit/916f94ed4b4bb8e7881d5cf8c6535b7ccb368f7a\"\u003e\u003ccode\u003e916f94e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003esign_in_after_reset_password?\u003c/code\u003e check hook to passwords controller (\u003ca href=\"https://redirect.github.com/heartcombo/devise/issues/5826\"\u003e#5826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/heartcombo/devise/compare/v4.9.4...v5.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk-components` from 5.11.3 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-components/releases\"\u003egovuk-components's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate supported Ruby, Rails and ViewComponent versions\u003c/li\u003e\n\u003cli\u003eSupport GOV.UK Design System version 6.1.0\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003esupport GOV.UK Design System version 6.0.0\u003c/li\u003e\n\u003cli\u003eremove the service name and navigation items from the header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate the govuk_tag colours (magenta replaces pink and teal replaces turquoise) \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003esupport ViewComponent version 4.3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpgrade notes\u003c/h2\u003e\n\u003cp\u003eThe service name and navigation items have been removed from the header. Instead, passing a block of HTML to the header will render it in the \u003ccode\u003e.govuk-header__container\u003c/code\u003e. You'll need to add your own styles to make things render in the right place. There are examples \u003ca href=\"https://govuk-components.x-govuk.org/components/header/#adding-more-content-to-the-header\"\u003ein the guide\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/DFE-Digital/register-early-career-teachers-public/pull/2327\"\u003ein this PR\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!CAUTION]\u003cbr /\u003e\nThe GOV.UK Header Component has changed significantly, \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-beta.1\"\u003esee the upstream release notes for more info\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ca href=\"https://github.com/alphagov/govuk-frontend/releases/tag/v6.0.0-rc.0\"\u003eGOV.UK frontend 6.0.0-rc0\u003c/a\u003e \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/624\"\u003e#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove navigation items and service name from GOV.UK Header component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/626\"\u003e#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump ViewComponent support to 4.3 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/628\"\u003e#628\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix a bug in the service nav where \u003ccode\u003earia-current=\u0026quot;true\u0026quot;\u003c/code\u003e was showing where it shouldn't have been. Thanks \u003ca href=\"https://github.com/DavidBiddle\"\u003e\u003ccode\u003e@​DavidBiddle\u003c/code\u003e\u003c/a\u003e for diagnosing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/621\"\u003e#621\u003c/a\u003e) and fixing (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/622\"\u003e#622\u003c/a\u003e) this :heart:\u003c/li\u003e\n\u003cli\u003eChange some links in the docs from netlify.app to x-govuk.org\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Rails 8.1. Thanks \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e. \u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/619\"\u003e#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to govuk-frontend 5.13.0\u003c/li\u003e\n\u003cli\u003eAdd Netlify link to the footer to qualify for Netlify's open source plan which we're using for the \u003ca href=\"https://govuk-components.x-govuk.org/\"\u003enew guide domain\u003c/a\u003e  ccb566fd4cd1ed5a8\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/d0a5d8d2becbbee616a93c9160c457edc053f43d\"\u003e\u003ccode\u003ed0a5d8d\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9b10ed070a94ea6bee9e477cb04da0bf8e987eb5\"\u003e\u003ccode\u003e9b10ed0\u003c/code\u003e\u003c/a\u003e Various version bumps (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/9cfa5a8ab3477672b24aa2c5c0e3ffaf49b5e25f\"\u003e\u003ccode\u003e9cfa5a8\u003c/code\u003e\u003c/a\u003e Bump supported ViewComponent to 4.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c82a3b15eb528843ae8b6cd8bf6f11f8069420a0\"\u003e\u003ccode\u003ec82a3b1\u003c/code\u003e\u003c/a\u003e Bump supported Ruby and Rails versions to latest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/24a77f9d4c1e25a1619d2612d8dd2417a01f147a\"\u003e\u003ccode\u003e24a77f9\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/f91de7d0e514511b2d1cced27136ca24cc412436\"\u003e\u003ccode\u003ef91de7d\u003c/code\u003e\u003c/a\u003e Fix build error in guide (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/636\"\u003e#636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/c8a496a65de0aeb7d8ae9460b416dd66a7e54ef7\"\u003e\u003ccode\u003ec8a496a\u003c/code\u003e\u003c/a\u003e Fix build error in guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/6a1dc1c9ea15d8ba70e9c04a31bcba132f912abe\"\u003e\u003ccode\u003e6a1dc1c\u003c/code\u003e\u003c/a\u003e Bump immutable from 5.1.3 to 5.1.5 in /guide (\u003ca href=\"https://redirect.github.com/x-govuk/govuk-components/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/67980c0d6b6b3dddba6ab20476ca205c35cf4a21\"\u003e\u003ccode\u003e67980c0\u003c/code\u003e\u003c/a\u003e Bump immutable from 5.1.3 to 5.1.5 in /guide\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-components/commit/ebf136f536c48dde8357c1c78993e90e91cbe255\"\u003e\u003ccode\u003eebf136f\u003c/code\u003e\u003c/a\u003e Release version 6.0.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-components/compare/v5.11.3...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `govuk_design_system_formbuilder` from 5.11.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/releases\"\u003egovuk_design_system_formbuilder's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.1.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade to govuk-frontend 6.1.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport defining text options for file upload component \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e, thank you \u003ca href=\"https://github.com/stephencdaly\"\u003e\u003ccode\u003e@​stephencdaly\u003c/code\u003e\u003c/a\u003e for contributing this\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.0.0b1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport govuk-frontend 6.0.0 by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/601\"\u003ex-govuk/govuk-form-builder#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 by \u003ca href=\"https://github.com/benilovj\"\u003e\u003ccode\u003e@​benilovj\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/590\"\u003ex-govuk/govuk-form-builder#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egovuk_time_field\u003c/code\u003e by \u003ca href=\"https://github.com/thomasleese\"\u003e\u003ccode\u003e@​thomasleese\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/599\"\u003ex-govuk/govuk-form-builder#599\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003earia-describedby\u003c/code\u003e link between labels/legends and supplemental content by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/580\"\u003ex-govuk/govuk-form-builder#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport injecting content before and after inputs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/598\"\u003ex-govuk/govuk-form-builder#598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade Ruby and Rails versions by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/606\"\u003ex-govuk/govuk-form-builder#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate nanoc requirement from ~\u0026gt; 4.13.0 to ~\u0026gt; 4.14.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/597\"\u003ex-govuk/govuk-form-builder#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeal with negative values when generating IDs by \u003ca href=\"https://github.com/peteryates\"\u003e\u003ccode\u003e@​peteryates\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/pull/608\"\u003ex-govuk/govuk-form-builder#608\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 5.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupgrade to govuk-frontend 5.13.0 \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003evarious minor version bumps\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/5cbe8f6e79a805327b72f09ee191cd58f09587fc\"\u003e\u003ccode\u003e5cbe8f6\u003c/code\u003e\u003c/a\u003e Release version 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/3b721e9ba3e3cf1a685cb3dd3dbca3aeb9604150\"\u003e\u003ccode\u003e3b721e9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/618\"\u003e#618\u003c/a\u003e from x-govuk/govuk-frontend-6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1169b60d51f775aed34960bb636106efa2042ffd\"\u003e\u003ccode\u003e1169b60\u003c/code\u003e\u003c/a\u003e Update supported versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/81733638cc0ceace44e85b2fc9ef0393362bef01\"\u003e\u003ccode\u003e8173363\u003c/code\u003e\u003c/a\u003e Upgrade to govuk-frontend 6.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/c96270cb8cc861c40d0a6155355cbdfc8f9831eb\"\u003e\u003ccode\u003ec96270c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/617\"\u003e#617\u003c/a\u003e from x-govuk/fix-guide-build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/d6f4e390ac6f51b7120a3f3efa73669f74ed9f50\"\u003e\u003ccode\u003ed6f4e39\u003c/code\u003e\u003c/a\u003e Reqire 'active_model' in guide perosn class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/b156fe78df8f74dc1574b16449d0515a9ddcd174\"\u003e\u003ccode\u003eb156fe7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/614\"\u003e#614\u003c/a\u003e from stephencdaly/add-options-to-file-upload-for-java...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/1c573ccc92b156684ee56a02329c7ca3bb3e7947\"\u003e\u003ccode\u003e1c573cc\u003c/code\u003e\u003c/a\u003e Add example to guide for setting custom text for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/9ed0f9573b7f015f79ccbf9c67a9e5dd91c8ba58\"\u003e\u003ccode\u003e9ed0f95\u003c/code\u003e\u003c/a\u003e Support defining text options for file upload component\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/x-govuk/govuk-form-builder/commit/a12d0c63e346946540d5cb8af44128c04fc55f8e\"\u003e\u003ccode\u003ea12d0c6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/x-govuk/govuk-form-builder/issues/611\"\u003e#611\u003c/a\u003e from x-govuk/dependabot/bundler/slim_lint-tw-0.34.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/x-govuk/govuk-form-builder/compare/v5.11.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `haml-rails` from 2.1.0 to 3.0.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/6c7c8ca772b2c8d36b58278c2c09498385979f85\"\u003e\u003ccode\u003e6c7c8ca\u003c/code\u003e\u003c/a\u003e Version 3.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e364abbc6a54f84b344c1ec846d683f927e1ae59\"\u003e\u003ccode\u003ee364abb\u003c/code\u003e\u003c/a\u003e Just use the newest one\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/30005dc31f9926dac33ba776389e9456e068b20f\"\u003e\u003ccode\u003e30005dc\u003c/code\u003e\u003c/a\u003e [CI] uses: actions/checkout@v5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/e639b11fe1571cdc1e8bb48143d13a63110e09e1\"\u003e\u003ccode\u003ee639b11\u003c/code\u003e\u003c/a\u003e Properly state the supported version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/3e1b70552ca28a42a4741d3bfd3cf7cf379c6486\"\u003e\u003ccode\u003e3e1b705\u003c/code\u003e\u003c/a\u003e frozen_string_literal: ❄️\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/2c51fd5848e6d36e36f831cf827578003525d08f\"\u003e\u003ccode\u003e2c51fd5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/haml/haml-rails/issues/197\"\u003e#197\u003c/a\u003e from amatsuda/rails_versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/9f4703ddff0644ba52529c5cf41c1624829b16a7\"\u003e\u003ccode\u003e9f4703d\u003c/code\u003e\u003c/a\u003e Fall back to the newest templates by default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/f0a9ff88ef682af3d6023e1d453ed978597abd72\"\u003e\u003ccode\u003ef0a9ff8\u003c/code\u003e\u003c/a\u003e Rails 5.1 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/852cf01c9831ee09049f7b990a648d441c876093\"\u003e\u003ccode\u003e852cf01\u003c/code\u003e\u003c/a\u003e Rails 5.2 scaffold templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haml/haml-rails/commit/8bb0351a85b83e81d1b27f18fdda17a77961c1af\"\u003e\u003ccode\u003e8bb0351\u003c/code\u003e\u003c/a\u003e Rails 6.0 scaffold templates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/haml/haml-rails/compare/v2.1.0...v3.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `oauth2` from 2.0.17 to 2.0.18\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases\"\u003eoauth2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.18\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18\"\u003e2.0.18\u003c/a\u003e - 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: \u003ca href=\"https://github.com/ruby-oauth/oauth2/releases/tag/v2.0.18\"\u003ev2.0.18\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 526/526 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files\u003c/li\u003e\n\u003cli\u003e90.48% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/683\"\u003egh!683\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/684\"\u003egh!684\u003c/a\u003e - Improve documentation by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/686\"\u003egh!686\u003c/a\u003e- Add Incident Response Plan by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/687\"\u003egh!687\u003c/a\u003e- Add Threat Model by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/685\"\u003egh!685\u003c/a\u003e - upgrade kettle-dev v1.1.24 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade kettle-dev v1.1.52 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eAdd open collective donors to README\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/690\"\u003egh!690\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/691\"\u003egh!691\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/692\"\u003egh!692\u003c/a\u003e - Add yard-fence\n\u003cul\u003e\n\u003cli\u003ehandle braces within code fences in markdown properly by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003eOfficial Discord 👉️ [![Live Chat on Discord][✉️discord-invite-img]][✉️discord-invite]\u003c/p\u003e\n\u003cp\u003eMany paths lead to being a sponsor or a backer of this project. Are you on such a path?\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://opencollective.com/ruby-oauth#backer\"\u003e![OpenCollective Backers][🖇osc-backers-i]\u003c/a\u003e [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] \u003ca href=\"https://liberapay.com/pboling/donate\"\u003e\u003cimg src=\"https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay\u0026amp;color=a51611\u0026amp;style=flat\" alt=\"Liberapay Goal Progress\" /\u003e\u003c/a\u003e [![Donate on PayPal][🖇paypal-img]][🖇paypal]\u003c/p\u003e\n\u003cp\u003e[![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby-oauth/oauth2/blob/main/CHANGELOG.md\"\u003eoauth2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.0.18] - 2025-11-08\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTAG: [v2.0.18][2.0.18t]\u003c/li\u003e\n\u003cli\u003eCOVERAGE: 100.00% -- 526/526 lines in 14 files\u003c/li\u003e\n\u003cli\u003eBRANCH COVERAGE: 100.00% -- 178/178 branches in 14 files\u003c/li\u003e\n\u003cli\u003e90.48% documented\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/683\"\u003egh!683\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/684\"\u003egh!684\u003c/a\u003e - Improve documentation by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/686\"\u003egh!686\u003c/a\u003e- Add Incident Response Plan by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/687\"\u003egh!687\u003c/a\u003e- Add Threat Model by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/685\"\u003egh!685\u003c/a\u003e - upgrade kettle-dev v1.1.24 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupgrade kettle-dev v1.1.52 by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\n\u003cul\u003e\n\u003cli\u003eAdd open collective donors to README\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/690\"\u003egh!690\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/691\"\u003egh!691\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/pull/692\"\u003egh!692\u003c/a\u003e - Add yard-fence\n\u003cul\u003e\n\u003cli\u003ehandle braces within code fences in markdown properly by \u003ca href=\"https://github.com/pboling\"\u003e\u003ccode\u003e@​pboling\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/b5753116121553d56937039dafc5ea472d9a99ed\"\u003e\u003ccode\u003eb575311\u003c/code\u003e\u003c/a\u003e 🔖 Prepare release v2.0.18\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/b5af77ba42ec111dda68abdee33d631e27fdfe61\"\u003e\u003ccode\u003eb5af77b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/693\"\u003e#693\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/cf2853d9fa05999f88c9df8b1b3a8a3ed21c64e8\"\u003e\u003ccode\u003ecf2853d\u003c/code\u003e\u003c/a\u003e 📝 Update docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/18434156bfc988527d2453b2174e6356e233757d\"\u003e\u003ccode\u003e1843415\u003c/code\u003e\u003c/a\u003e ⬆️ kettle-dev v1.1.52, yard-fence v0.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f592dd8753966a30671ebc2e8a28ab26138b6c2b\"\u003e\u003ccode\u003ef592dd8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/692\"\u003e#692\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/2095732d7cd4eeb80fe74c89e2a2d012517e40d6\"\u003e\u003ccode\u003e2095732\u003c/code\u003e\u003c/a\u003e ⬆️ yard-fence v0.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/50f3fd08e733ed75b2cc99e077e9ea9d64a3d5d5\"\u003e\u003ccode\u003e50f3fd0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/691\"\u003e#691\u003c/a\u003e from ruby-oauth/feat/docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/bcb0e40bfca989f164a04cbf46a4175822b7cb28\"\u003e\u003ccode\u003ebcb0e40\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/f24f1a8bfbf546595aa16cd6fa82119c8218c1d3\"\u003e\u003ccode\u003ef24f1a8\u003c/code\u003e\u003c/a\u003e Create CNAME\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby-oauth/oauth2/commit/bff58e1afec541feca2a337664d09c58b8a22419\"\u003e\u003ccode\u003ebff58e1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ruby-oauth/oauth2/issues/690\"\u003e#690\u003c/a\u003e from ruby-oauth/feat/yard-fence\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby-oauth/oauth2/compare/v2.0.17...v2.0.18\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `omniauth-rails_csrf_protection` from 1.0.2 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/releases\"\u003eomniauth-rails_csrf_protection's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix an issue with configuration delegation in Rails \u0026lt; 8.1 (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/26\"\u003e#26\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eFor more details, please see 1a0d39099957675f549e1f23c836f57b99b09a00.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop using deprecated \u003ccode\u003eActiveSupport::Configurable\u003c/code\u003e when this gem is running against Action Pack version 8.1 and later (\u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/23\"\u003e#23\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/cookpad/omniauth-rails_csrf_protection/issues/24\"\u003e#24\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c4f53d72e6a278c02f1a6d294c4f8004354ee0b7\"\u003e\u003ccode\u003ec4f53d7\u003c/code\u003e\u003c/a\u003e Bump to 2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/1a0d39099957675f549e1f23c836f57b99b09a00\"\u003e\u003ccode\u003e1a0d390\u003c/code\u003e\u003c/a\u003e Fix an issue with configuration delegation in Rails \u0026lt; 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/bc315e1b09fbf6a363d5293067b42675f020fc4c\"\u003e\u003ccode\u003ebc315e1\u003c/code\u003e\u003c/a\u003e Properly silence Rails 8.0.x warning message in test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/23483750b4a0a803347e02778b975886ecb82875\"\u003e\u003ccode\u003e2348375\u003c/code\u003e\u003c/a\u003e Bump to 2.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/c283d1d159a292c5fce8ed1a2f5997f6bde209f5\"\u003e\u003ccode\u003ec283d1d\u003c/code\u003e\u003c/a\u003e Update README to add OmniAuth's built-in solution\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/2cf722bd7cc310009ee626cce28a7ea52b47f649\"\u003e\u003ccode\u003e2cf722b\u003c/code\u003e\u003c/a\u003e Add workaround for deprecated AS::Configurable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/431597eb44ff8ae0bf9802d1a1dc85ebb8d2cfa3\"\u003e\u003ccode\u003e431597e\u003c/code\u003e\u003c/a\u003e Silence \u003ccode\u003e#to_time\u003c/code\u003e warning in Rails 8.0.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/5e9c8a27b0ccac54ca3bec7f3b49d43ddefdc4d6\"\u003e\u003ccode\u003e5e9c8a2\u003c/code\u003e\u003c/a\u003e Print Ruby version in the test output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/3e62c0572bf5c9796fff5fe197f07d5ed172a7c5\"\u003e\u003ccode\u003e3e62c05\u003c/code\u003e\u003c/a\u003e Remove unnecessary logger gem entry in Gemfile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/commit/f9810a5886d692312c6d015914fdad00cf7f41b2\"\u003e\u003ccode\u003ef9810a5\u003c/code\u003e\u003c/a\u003e Update build matrix and fix build errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cookpad/omniauth-rails_csrf_protection/compare/v1.0.2...v2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.6.2 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus_exporter` from 2.3.0 to 2.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/discourse/prometheus_exporter/blob/main/CHANGELOG\"\u003eprometheus_exporter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[2.3.1] - 2025-11-11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFIX: get controller full path instead of controller name - Alex Platteeuw\u003c/li\u003e\n\u003cli\u003eFEATURE: Secure PrometheusExporter scraping with SSL - Nicolas Rodriquez\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/15e9d4783db8267fb3b0c48e5464ec4c1ae58c00\"\u003e\u003ccode\u003e15e9d47\u003c/code\u003e\u003c/a\u003e version bump (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bd3817744bb5011aed6c669696ed957c23cd3fe\"\u003e\u003ccode\u003e4bd3817\u003c/code\u003e\u003c/a\u003e fix: get controller full path instead of controller name (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/4bb4fa333386b166a745df92be5620b11be3872a\"\u003e\u003ccode\u003e4bb4fa3\u003c/code\u003e\u003c/a\u003e Secure PrometheusExporter scraping with SSL (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/350\"\u003e#350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/discourse/prometheus_exporter/commit/b10933453f0952cd17d143487c5adc8bb74b492a\"\u003e\u003ccode\u003eb109334\u003c/code\u003e\u003c/a\u003e Add connect_timeout: settings to PrometheusExporter::Client (\u003ca href=\"https://redirect.github.com/discourse/prometheus_exporter/issues/352\"\u003e#352\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/discourse/prometheus_exporter/compare/v2.3.0...v2.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `puma` from 7.0.4 to 8.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/releases\"\u003epuma's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev8.0.0 - Into the Arena\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eRead our \u003ca href=\"https://github.com/puma/puma/blob/main/docs/8.0-Upgrade.md\"\u003eVersion 8 Upgrade Guide.\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev7.2.0 - On The Corner\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/puma/puma/blob/main/History.md\"\u003epuma's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.0.0 / 2026-03-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eenv[\u0026quot;puma.mark_as_io_bound\u0026quot;]\u003c/code\u003e API and \u003ccode\u003emax_io_threads\u003c/code\u003e config to allow IO-bound requests to exceed the thread pool max, enabling better handling of mixed workloads (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3816\"\u003e#3816\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/puma/puma/issues/3894\"\u003e#3894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003esingle\u003c/code\u003e and \u003ccode\u003ecluster\u003c/code\u003e DSL hooks for mode-specific configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eon_force\u003c/code\u003e option to \u003ccode\u003eshutdown_debug\u003c/code\u003e to only dump thread backtraces on forced (non-graceful) shutdown (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3671\"\u003e#3671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd API to dynamically update min and max thread counts at runtime via \u003ccode\u003eupdate_thread_pool_min_max\u003c/code\u003e and \u003ccode\u003eServerPluginControl\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3658\"\u003e#3658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse SIGPWR for thread backtrace dumps on Linux/JRuby where SIGINFO is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix phased restart for \u003ccode\u003efork_worker\u003c/code\u003e to avoid forking from stale worker 0 when it has been replaced (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eJRuby HTTP parser improvements: pre-allocated header keys, perfect hash lookup, reduced memory copies (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache downcased header key in \u003ccode\u003estr_headers\u003c/code\u003e to avoid redundant \u003ccode\u003eString#downcase\u003c/code\u003e calls, reducing allocations by ~50% per response (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3874\"\u003e#3874\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCollect \u003ccode\u003eenv\u003c/code\u003e processing into dedicated \u003ccode\u003eclient_env.rb\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3582\"\u003e#3582\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMove event to default configuration (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3872\"\u003e#3872\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDocs\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd gRPC guide for configuring gRPC lifecycle hooks in clustered mode (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3885\"\u003e#3885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd 7.0 upgrade guide, move 5.0/6.0 upgrade guides to docs directory (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3900\"\u003e#3900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect default values for \u003ccode\u003epersistent_timeout\u003c/code\u003e and \u003ccode\u003eworker_boot_timeout\u003c/code\u003e in DSL docs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd file descriptor limit warning in test helper for contributors (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3893\"\u003e#3893\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBreaking changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDefault production bind address changed from \u003ccode\u003e0.0.0.0\u003c/code\u003e to \u003ccode\u003e::\u003c/code\u003e (IPv6) when a non-loopback IPv6 interface is available; falls back to \u003ccode\u003e0.0.0.0\u003c/code\u003e if IPv6 is unavailable (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.2.0 / 2026-01-20\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFeatures\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd workers \u003ccode\u003e:auto\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake it possible to restrict control server commands to stats (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3787\"\u003e#3787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBugfixes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDon't break if \u003ccode\u003eWEB_CONCURRENCY\u003c/code\u003e is set to a blank string (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't share server between worker 0 and descendants on refork (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3602\"\u003e#3602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix phase check race condition in \u003ccode\u003ePuma::Cluster#check_workers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3690\"\u003e#3690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix advertising of CLI config before config files are loaded (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e17% faster HTTP parsing through pre-interning env keys (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003edsize\u003c/code\u003e and \u003ccode\u003edcompact\u003c/code\u003e functions for \u003ccode\u003ePuma::HttpParser\u003c/code\u003e, which makes Puma's C-extension GC-compactible (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove \u003ccode\u003eNoMethodError\u003c/code\u003e rescue in \u003ccode\u003eReactor#select_loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eVarious cleanups in the C extension (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMonomorphize \u003ccode\u003ehandle_request\u003c/code\u003e return (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3802\"\u003e#3802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/08f63d495955eaee065d0ee18849f4ddcd52fe72\"\u003e\u003ccode\u003e08f63d4\u003c/code\u003e\u003c/a\u003e Release v8.0.0 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3914\"\u003e#3914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7406cc192480ce9d01c9a47e6f41fcb1548217a6\"\u003e\u003ccode\u003e7406cc1\u003c/code\u003e\u003c/a\u003e Fix IPv4-mapped IPv6 addresses in \u003ccode\u003eREMOTE_ADDR\u003c/code\u003e and request logs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3916\"\u003e#3916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/e090243320eb743a6c03f77f4ffa9e1a24c677b1\"\u003e\u003ccode\u003ee090243\u003c/code\u003e\u003c/a\u003e Build(deps): Bump actions/checkout from 4 to 6 (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3915\"\u003e#3915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/7d5dca1a561a95c2a6b8742b52c81c73cd2b95ca\"\u003e\u003ccode\u003e7d5dca1\u003c/code\u003e\u003c/a\u003e Update SECURITY.md, native Github vuln reports [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3913\"\u003e#3913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/66e6a32de52d9beed43e1c598bda360f906ccbef\"\u003e\u003ccode\u003e66e6a32\u003c/code\u003e\u003c/a\u003e Minor correction to defaults documented in dsl.rb (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3912\"\u003e#3912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/3788eca453a64ffb05a67115d3e2a276bbaf21a3\"\u003e\u003ccode\u003e3788eca\u003c/code\u003e\u003c/a\u003e ci: limit rack-conform to main pushes and scope ragel PR runs (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3908\"\u003e#3908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/57b7799201adf43cdf508f90c57b95e23f49bbcd\"\u003e\u003ccode\u003e57b7799\u003c/code\u003e\u003c/a\u003e ci: run turbo-rails only on latest stable Ruby and Rails (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3909\"\u003e#3909\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/6685d6b8024c5480774b790808e4f0343e414fa5\"\u003e\u003ccode\u003e6685d6b\u003c/code\u003e\u003c/a\u003e ci: replace skip-duplicate jobs with concurrency and trigger filters (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3907\"\u003e#3907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/2848c823dfc9838033d6ce342fee917e81aeedc1\"\u003e\u003ccode\u003e2848c82\u003c/code\u003e\u003c/a\u003e ci: run push workflows only on main and release branches (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3906\"\u003e#3906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/puma/puma/commit/97a37bb7c6a457f8846eb3ce307daadd4b38b4f8\"\u003e\u003ccode\u003e97a37bb\u003c/code\u003e\u003c/a\u003e Add release pre-merge checks and align Release.md [ci skip] (\u003ca href=\"https://redirect.github.com/puma/puma/issues/3904\"\u003e#3904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/puma/puma/compare/v7.0.4...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rails` from 8.0.3 to 8.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/rails/releases\"\u003erails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.1.3\u003c/h2\u003e\n\u003ch2\u003eActive Support\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eJSONGemCoderEncoder\u003c/code\u003e to correctly serialize custom object hash keys.\u003c/p\u003e\n\u003cp\u003eWhen hash keys are custom objects whose \u003ccode\u003eas_json\u003c/code\u003e returns a Hash,\nthe encoder now calls \u003ccode\u003eto_s\u003c/code\u003e on the original key object instead of\non the \u003ccode\u003eas_json\u003c/code\u003e result.\u003c/p\u003e\n\u003cp\u003eBefore:\nhash = {CustomKey.new(123) =\u0026gt; \u0026quot;value\u0026quot;}\nhash.to_json  # =\u0026gt; {\u0026quot;{:id=\u0026gt;123}\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003eAfter:\nhash.to_json  # =\u0026gt; {\u0026quot;custom_123\u0026quot;:\u0026quot;value\u0026quot;}\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eDan Sharp\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix inflections to better handle overlapping acronyms.\u003c/p\u003e\n\u003cpre lang=\"ruby\"\u003e\u003ccode\u003eActiveSupport::Inflector.inflections(:en) do |inflect|\r\n  inflect.acronym \u0026quot;USD\u0026quot;\r\n  inflect.acronym \u0026quot;USDC\u0026quot;\r\nend\r\n\u003cp\u003e\u0026quot;USDC\u0026quot;.underscore # =\u0026gt; \u0026quot;usdc\u0026quot;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eSaid Kaldybaev\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSilence Dalli 4.0+ warning when using \u003ccode\u003eActiveSupport::Cache::MemCacheStore\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003ezzak\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eActive Model\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix Ruby 4.0 delegator warning when calling inspect on attributes.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eHammad Khan\u003c/em\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003eNoMethodError\u003c/code\u003e when deserialising \u003ccode\u003eType::Integer\u003c/code\u003e objects marshalled under Rails 8.0.\u003c/p\u003e\n\u003cp\u003eThe performance optimisation that replaced \u003ccode\u003e@range\u003c/code\u003e with \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e\nbroke Marshal compatibility. Objects serialised under 8.0 (with \u003ccode\u003e@range\u003c/code\u003e)\nand deserialised under 8.1 (expecting \u003ccode\u003e@max\u003c/code\u003e/\u003ccode\u003e@min\u003c/code\u003e) would crash with\n\u003ccode\u003eundefined method '\u0026lt;=' for nil\u003c/code\u003e because \u003ccode\u003eMarshal.load\u003c/code\u003e restores instance\nvariables without calling \u003ccode\u003einitialize\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/fa8f0812160665bff083a089d2bb2fc1817ea03e\"\u003e\u003ccode\u003efa8f081\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63cef3de3bd88d5973837ea268dc710e7dbf7b8e\"\u003e\u003ccode\u003e63cef3d\u003c/code\u003e\u003c/a\u003e Merge branch '8-1-sec' into 8-1-stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1db4b89687cc18311fc3f92623136705df24e671\"\u003e\u003ccode\u003e1db4b89\u003c/code\u003e\u003c/a\u003e Preparing for 8.1.2.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/1c7d1cf0a1ab4142eb20ef30fe2062aad6f72e21\"\u003e\u003ccode\u003e1c7d1cf\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/e91694b1f0e176eb01bfcc480a008bffc70f7602\"\u003e\u003ccode\u003ee91694b\u003c/code\u003e\u003c/a\u003e Update CHANGELOG (8.1 only)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/6752711c8c31d79ba50d13af6a6698a3b85415e0\"\u003e\u003ccode\u003e6752711\u003c/code\u003e\u003c/a\u003e Fix XSS in debug exceptions copy-to-clipboard\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/63f5ad83edaa0b976f82d46988d745426aa4a42d\"\u003e\u003ccode\u003e63f5ad8\u003c/code\u003e\u003c/a\u003e Skip blank attribute names in Action View tag helpers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/8c9676b803820110548cdb7523800db43bc6874c\"\u003e\u003ccode\u003e8c9676b\u003c/code\u003e\u003c/a\u003e Prevent glob injection in ActiveStorage DiskService#delete_prefixed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/9b06fbc0f504b8afe333f33d19548f3b85fbe655\"\u003e\u003ccode\u003e9b06fbc\u003c/code\u003e\u003c/a\u003e Prevent path traversal in ActiveStorage DiskService\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/rails/commit/ec1a0e215efd27a3b3911aae6df978a80f456a49\"\u003e\u003ccode\u003eec1a0e2\u003c/code\u003e\u003c/a\u003e Improve performance of NumberToDelimitedConverter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/rails/compare/v8.0.3...v8.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-rails` from 5.27.1 to 6.5.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md\"\u003esentry-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e(otlp) Add collector_url option to OTLP integration by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2887\"\u003e#2887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(release-detector) Prefer HEROKU_BUILD_COMMIT over deprecated HEROKU_SLUG_COMMIT by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-ruby/pull/2886\"\u003e#2886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement strict trace continuation by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/ministryofjustice/laa-court-data-ui/pull/3207","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ministryofjustice%2Flaa-court-data-ui/issues/3207","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3207/packages"}},{"old_version":"1.5.9","new_version":"1.6.3","update_type":"minor","path":null,"pr_created_at":"2026-04-10T02:20:39.000Z","version_change":"1.5.9 → 1.6.3","issue":{"uuid":"4236108598","node_id":"PR_kwDOM_sz8c7RUJFY","number":14,"state":"closed","title":"Bump the minor-and-patch group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-11T20:05:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-10T02:20:39.000Z","updated_at":"2026-04-11T20:05:59.000Z","time_to_close":150310,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-and-patch","update_count":23,"packages":[{"name":"bootstrap","old_version":"5.3.5","new_version":"5.3.8","repository_url":"https://github.com/twbs/bootstrap-rubygem"},{"name":"faraday-retry","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/lostisland/faraday-retry"},{"name":"jquery-rails","old_version":"4.6.0","new_version":"4.6.1","repository_url":"https://github.com/rails/jquery-rails"},{"name":"pg","old_version":"1.5.9","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"},{"name":"importmap-rails","old_version":"2.1.0","new_version":"2.2.3","repository_url":"https://github.com/rails/importmap-rails"},{"name":"turbo-rails","old_version":"2.0.16","new_version":"2.0.23","repository_url":"https://github.com/hotwired/turbo-rails"},{"name":"redis","old_version":"5.4.0","new_version":"5.4.1","repository_url":"https://github.com/redis/redis-rb"},{"name":"data_migrate","old_version":"11.3.0","new_version":"11.3.1","repository_url":"https://github.com/ajvargo/data-migrate"},{"name":"bootsnap","old_version":"1.18.6","new_version":"1.23.0","repository_url":"https://github.com/rails/bootsnap"},{"name":"debug","old_version":"1.10.0","new_version":"1.11.1","repository_url":"https://github.com/ruby/debug"},{"name":"factory_bot_rails","old_version":"6.4.4","new_version":"6.5.1","repository_url":"https://github.com/thoughtbot/factory_bot_rails"},{"name":"faker","old_version":"3.5.1","new_version":"3.6.1","repository_url":"https://github.com/faker-ruby/faker"},{"name":"selenium-webdriver","old_version":"4.33.0","new_version":"4.42.0","repository_url":"https://github.com/SeleniumHQ/selenium"},{"name":"simplecov-console","old_version":"0.9.3","new_version":"0.9.5","repository_url":"https://github.com/chetan/simplecov-console"},{"name":"web-console","old_version":"4.2.1","new_version":"4.3.0","repository_url":"https://github.com/rails/web-console"},{"name":"rails","old_version":"7.1.5.1","new_version":"8.1.3","repository_url":"https://github.com/rails/rails"},{"name":"rubocop","old_version":"1.81.1","new_version":"1.86.1","repository_url":"https://github.com/rubocop/rubocop"},{"name":"bullet","old_version":"8.0.8","new_version":"8.1.0","repository_url":"https://github.com/flyerhzm/bullet"},{"name":"foreman","old_version":"0.88.1","new_version":"0.90.0","repository_url":"https://github.com/ddollar/foreman"},{"name":"rubocop-factory_bot","old_version":"2.27.1","new_version":"2.28.0","repository_url":"https://github.com/rubocop/rubocop-factory_bot"},{"name":"rubocop-rails","old_version":"2.33.4","new_version":"2.34.3","repository_url":"https://github.com/rubocop/rubocop-rails"},{"name":"rubocop-rspec","old_version":"3.7.0","new_version":"3.9.0","repository_url":"https://github.com/rubocop/rubocop-rspec"},{"name":"rubocop-rspec_rails","old_version":"2.31.0","new_version":"2.32.0","repository_url":"https://github.com/rubocop/rubocop-rspec_rails"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps the minor-and-patch group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bootstrap](https://github.com/twbs/bootstrap-rubygem) | `5.3.5` | `5.3.8` |\n| [faraday-retry](https://github.com/lostisland/faraday-retry) | `2.3.1` | `2.4.0` |\n| [jquery-rails](https://github.com/rails/jquery-rails) | `4.6.0` | `4.6.1` |\n| [pg](https://github.com/ged/ruby-pg) | `1.5.9` | `1.6.3` |\n| [importmap-rails](https://github.com/rails/importmap-rails) | `2.1.0` | `2.2.3` |\n| [turbo-rails](https://github.com/hotwired/turbo-rails) | `2.0.16` | `2.0.23` |\n| [redis](https://github.com/redis/redis-rb) | `5.4.0` | `5.4.1` |\n| [data_migrate](https://github.com/ajvargo/data-migrate) | `11.3.0` | `11.3.1` |\n| [bootsnap](https://github.com/rails/bootsnap) | `1.18.6` | `1.23.0` |\n| [debug](https://github.com/ruby/debug) | `1.10.0` | `1.11.1` |\n| [factory_bot_rails](https://github.com/thoughtbot/factory_bot_rails) | `6.4.4` | `6.5.1` |\n| [faker](https://github.com/faker-ruby/faker) | `3.5.1` | `3.6.1` |\n| [selenium-webdriver](https://github.com/SeleniumHQ/selenium) | `4.33.0` | `4.42.0` |\n| [simplecov-console](https://github.com/chetan/simplecov-console) | `0.9.3` | `0.9.5` |\n| [web-console](https://github.com/rails/web-console) | `4.2.1` | `4.3.0` |\n| [rails](https://github.com/rails/rails) | `7.1.5.1` | `8.1.3` |\n| [rubocop](https://github.com/rubocop/rubocop) | `1.81.1` | `1.86.1` |\n| [bullet](https://github.com/flyerhzm/bullet) | `8.0.8` | `8.1.0` |\n| [foreman](https://github.com/ddollar/foreman) | `0.88.1` | `0.90.0` |\n| [rubocop-factory_bot](https://github.com/rubocop/rubocop-factory_bot) | `2.27.1` | `2.28.0` |\n| [rubocop-rails](https://github.com/rubocop/rubocop-rails) | `2.33.4` | `2.34.3` |\n| [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) | `3.7.0` | `3.9.0` |\n| [rubocop-rspec_rails](https://github.com/rubocop/rubocop-rspec_rails) | `2.31.0` | `2.32.0` |\n\n\nUpdates `bootstrap` from 5.3.5 to 5.3.8\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/b4003b33f906f0783711f94bc8d1a6a8ccac0534\"\u003e\u003ccode\u003eb4003b3\u003c/code\u003e\u003c/a\u003e Update to v5.3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/e16da549fb566ae143d42d65d0403178de8fedd1\"\u003e\u003ccode\u003ee16da54\u003c/code\u003e\u003c/a\u003e Update to v5.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/f7a2c7f4dd0bdde7a9ca67b809813005a0048344\"\u003e\u003ccode\u003ef7a2c7f\u003c/code\u003e\u003c/a\u003e Update to v5.3.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/twbs/bootstrap-rubygem/commit/087adf94d68c45e0fa5051f4e3fe4729b2e58bf4\"\u003e\u003ccode\u003e087adf9\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/twbs/bootstrap-rubygem/compare/v5.3.5...v5.3.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faraday-retry` from 2.3.1 to 2.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lostisland/faraday-retry/releases\"\u003efaraday-retry's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/49\"\u003elostisland/faraday-retry#49\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/50\"\u003elostisland/faraday-retry#50\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003erequired_ruby_version\u003c/code\u003e to support Ruby 4.0 by \u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/51\"\u003elostisland/faraday-retry#51\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/taketo1113\"\u003e\u003ccode\u003e@​taketo1113\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/51\"\u003elostisland/faraday-retry#51\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.2...v2.4.0\"\u003ehttps://github.com/lostisland/faraday-retry/compare/v2.3.2...v2.4.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.3.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCI: Prepare Trusted Publisher for RubyGems by \u003ca href=\"https://github.com/djsmentya\"\u003e\u003ccode\u003e@​djsmentya\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/47\"\u003elostisland/faraday-retry#47\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ev2.3.2 by \u003ca href=\"https://github.com/olleolleolle\"\u003e\u003ccode\u003e@​olleolleolle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/48\"\u003elostisland/faraday-retry#48\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djsmentya\"\u003e\u003ccode\u003e@​djsmentya\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/lostisland/faraday-retry/pull/47\"\u003elostisland/faraday-retry#47\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.3.2\"\u003ehttps://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.3.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/a422231c8dbd6f3667b99bcb04f4927d33fab2a5\"\u003e\u003ccode\u003ea422231\u003c/code\u003e\u003c/a\u003e Version bump to 2.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/8fa8cc2fac5c168229ad2f5670e910d8fbf0ec01\"\u003e\u003ccode\u003e8fa8cc2\u003c/code\u003e\u003c/a\u003e Relax \u003ccode\u003erequired_ruby_version\u003c/code\u003e to support Ruby 4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/611150171d8075cdd3e61662c16847dac1438d7e\"\u003e\u003ccode\u003e6111501\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/59688458e818b65d09b3ada441c1cfb63fac6ce9\"\u003e\u003ccode\u003e5968845\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/9950680ae7d3c188771add348ae1854d205df558\"\u003e\u003ccode\u003e9950680\u003c/code\u003e\u003c/a\u003e v2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/04bd4baaa6f879667507372a2027c5d85f86fdc5\"\u003e\u003ccode\u003e04bd4ba\u003c/code\u003e\u003c/a\u003e CI: Ensure Ruby 2.7 can run rubocop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/1a51fe086e7560c0dcb7cddd84baa74171bd77d1\"\u003e\u003ccode\u003e1a51fe0\u003c/code\u003e\u003c/a\u003e Unignore .ruby-version and add 3.4.4 into it\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/4be76d9b57d5758128afc3dfdf8218c933f7f3e3\"\u003e\u003ccode\u003e4be76d9\u003c/code\u003e\u003c/a\u003e CI: Let Publish access bundled gems, and use latest Ruby there\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/e956a6d229b16f46b03e6a7a00273e8d866983a2\"\u003e\u003ccode\u003ee956a6d\u003c/code\u003e\u003c/a\u003e Prepare Trusted Publisher\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lostisland/faraday-retry/commit/f91e49ab0ca08586f115e0bf27d8fba98608a1f3\"\u003e\u003ccode\u003ef91e49a\u003c/code\u003e\u003c/a\u003e CI: use conventional name for ci.yml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lostisland/faraday-retry/compare/v2.3.1...v2.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jquery-rails` from 4.6.0 to 4.6.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/jquery-rails/blob/master/CHANGELOG.md\"\u003ejquery-rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eupdate jquery to 3.7.1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/034296045427fa54ad095f392fccd9ff5708e110\"\u003e\u003ccode\u003e0342960\u003c/code\u003e\u003c/a\u003e Release v4.6.1 with jQuery v3.7.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/jquery-rails/commit/039b12e91c148d65789030308653545943db43a4\"\u003e\u003ccode\u003e039b12e\u003c/code\u003e\u003c/a\u003e Update jquery to v3.7.1 (\u003ca href=\"https://redirect.github.com/rails/jquery-rails/issues/305\"\u003e#305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/rails/jquery-rails/compare/v4.6.0...v4.6.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pg` from 1.5.9 to 1.6.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.2 [2025-09-02] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove several absolute paths from native binaries which pointed to build directories. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/668\"\u003e#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bad fallback path to \u003ccode\u003epg_service.conf\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/666\"\u003e#666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erbpg_\u003c/code\u003e prefix for \u003ccode\u003ebase64_*\u003c/code\u003e functions to avoid name clashes with functions provided by other libraries like Heimdal on Macos. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/667\"\u003e#667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise a more descriptive error message in case of \u003ccode\u003epg_ext\u003c/code\u003e LoadError. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/664\"\u003e#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFreeze some constants to make them available in a Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/660\"\u003e#660\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral documentation improvements.\u003c/li\u003e\n\u003cli\u003eUpdate native binary gems to OpenSSL-3.5.2, krb5-1.22.1 and PostgreSQL-17.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.1 [2025-08-03] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for platforms \u003ccode\u003eaarch64-linux-musl\u003c/code\u003e and \u003ccode\u003ex86_64-linux-musl\u003c/code\u003e without the need to install package \u003ccode\u003egcompat\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/657\"\u003e#657\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSerialize CompositeCoder#dimensions only when set. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/652\"\u003e#652\u003c/a\u003e\nThis fixes the compatibility to pg-1.5.9, when deserializing Marshal data from pg-1.6, as long as the new attribute isn't used.\u003c/li\u003e\n\u003cli\u003eRemove dependency to MSYS2 package \u0026quot;postgresql\u0026quot; from binary Windows gem \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/654\"\u003e#654\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.6.0 [2025-07-27] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for Ruby 3.4.\u003c/li\u003e\n\u003cli\u003eAdd fat binary gem for platform \u003ccode\u003eaarch64-mingw-ucrt\u003c/code\u003e aka Windows on ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/626\"\u003e#626\u003c/a\u003e, for platform Macos on Intel and ARM \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/643\"\u003e#643\u003c/a\u003e, for platform \u003ccode\u003eaarch64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/646\"\u003e#646\u003c/a\u003e and for platform \u003ccode\u003ex86_64-linux\u003c/code\u003e \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/551#issuecomment-2504715762\"\u003e#551\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.5.1 and PostgreSQL-17.5.\u003c/li\u003e\n\u003cli\u003eAdd a patch to libpq to avoid starvation on bigger SSL records, which some database engines other than vanilla PostgreSQL use.\nThis patch applies to platform specific binary gems only.\n\u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/616\"\u003e#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for new query cancel functions of PostgreSQL-17.\nThis adds the new class \u003ccode\u003ePG::CancelConnection\u003c/code\u003e which provides the ability to cancel a query per blocking or per non-blocking functions.\nIf the new functions are available they are used and the older are no longer compiled in.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.5.9...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importmap-rails` from 2.1.0 to 2.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/importmap-rails/releases\"\u003eimportmap-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.2.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003epin_all_from\u003c/code\u003e incorrectly removing \u0026quot;js\u0026quot; substring from filenames by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/313\"\u003erails/importmap-rails#313\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle package names with nested paths in import maps by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/322\"\u003erails/importmap-rails#322\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.2...v2.2.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eKeep options when updating packages in importmap by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/310\"\u003erails/importmap-rails#310\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake integrity calculation opt-in by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/312\"\u003erails/importmap-rails#312\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.1...v2.2.2\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.1...v2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove SRI support by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/309\"\u003erails/importmap-rails#309\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIntegrity is now generated by default using the assets pipeline if it is properly configured. \u003ccode\u003epin\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e commands don't download the integrity from the npm repository anymore.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.2.0...v2.2.1\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.2.0...v2.2.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--preload\u003c/code\u003e option to pin command by \u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/298\"\u003erails/importmap-rails#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch failure HTTP responses on calls to the npm registry  by \u003ca href=\"https://github.com/tmeire\"\u003e\u003ccode\u003e@​tmeire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/301\"\u003erails/importmap-rails#301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn about vendored versionless packages by \u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/305\"\u003erails/importmap-rails#305\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement SRI support in importmap-rails by \u003ca href=\"https://github.com/rafaelfranca\"\u003e\u003ccode\u003e@​rafaelfranca\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/304\"\u003erails/importmap-rails#304\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ron-shinall\"\u003e\u003ccode\u003e@​ron-shinall\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/296\"\u003erails/importmap-rails#296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/3v0k4\"\u003e\u003ccode\u003e@​3v0k4\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/298\"\u003erails/importmap-rails#298\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmeire\"\u003e\u003ccode\u003e@​tmeire\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/rails/importmap-rails/pull/301\"\u003erails/importmap-rails#301\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.0\"\u003ehttps://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/6fb2bd58e3709d4996179de06aa687d6abae8a0e\"\u003e\u003ccode\u003e6fb2bd5\u003c/code\u003e\u003c/a\u003e Prepare for 2.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/682e05806a9ab3757a9841e7360fc8a9188c33f9\"\u003e\u003ccode\u003e682e058\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/322\"\u003e#322\u003c/a\u003e from rails/rmf-fix-321\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/a04dd3096ffb99f18b5b2425e9b6500006d3a0d1\"\u003e\u003ccode\u003ea04dd30\u003c/code\u003e\u003c/a\u003e Handle package names with nested paths in import maps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/9b0a9e0f5b3395f5754eb6a62e51d37a12adc0a5\"\u003e\u003ccode\u003e9b0a9e0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/323\"\u003e#323\u003c/a\u003e from rails/rmf-test-ruby-4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/e37bea686521343c4d67a9ed041140d54a36a4ae\"\u003e\u003ccode\u003ee37bea6\u003c/code\u003e\u003c/a\u003e Test with Ruby 4.0 and Rails 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/51c1a531327fc04ed4552bb0fd523eb43561b817\"\u003e\u003ccode\u003e51c1a53\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/importmap-rails/issues/313\"\u003e#313\u003c/a\u003e from rails/rm-fix-282\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/3e94dfa33d1fa717880f847e4e67479a4d10a8fe\"\u003e\u003ccode\u003e3e94dfa\u003c/code\u003e\u003c/a\u003e Add some copilot prompts for this project\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/7ffedcb97d72443c715979c8f8d8ec0b149056bb\"\u003e\u003ccode\u003e7ffedcb\u003c/code\u003e\u003c/a\u003e Fix pin_all_from incorrectly removing \u0026quot;js\u0026quot; substring from filenames\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/dcdb5fe1c1078ebbd567b3811745d69503bf348b\"\u003e\u003ccode\u003edcdb5fe\u003c/code\u003e\u003c/a\u003e Bump version for 2.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/importmap-rails/commit/40d0dc57e6c49bdff74096cee513fd263f6c91d2\"\u003e\u003ccode\u003e40d0dc5\u003c/code\u003e\u003c/a\u003e Fix update command adding extra new lines\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/importmap-rails/compare/v2.1.0...v2.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `turbo-rails` from 2.0.16 to 2.0.23\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hotwired/turbo-rails/releases\"\u003eturbo-rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.23\u003c/h2\u003e\n\u003cp\u003eUpdates the bundled JS to freshen stale dependencies from the previous release.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.22...v2.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdates the bundled JS to \u003ca href=\"https://github.com/hotwired/turbo/compare/v8.0.21...v8.0.22\"\u003ev8.0.22\u003c/a\u003e for renamed \u003ccode\u003esession.navigator\u003c/code\u003e to avoid clobbering \u003ccode\u003ewindow.navigator\u003c/code\u003e. See \u003ca href=\"https://redirect.github.com/hotwired/turbo/pull/1489\"\u003ehotwired/turbo#1489\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.21...v2.0.22\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.21\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003erails@8.1\u003c/code\u003e to the CI matrix by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/758\"\u003ehotwired/turbo-rails#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse an immediate debouncer for tests by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInclude hidden elements for turbo-cable-stream-source selector by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/740\"\u003ehotwired/turbo-rails#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI for \u003ccode\u003eruby@3.2.x\u003c/code\u003e-\u003ccode\u003erails@7.2.x\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/764\"\u003ehotwired/turbo-rails#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd turbo frame assertion test helpers by \u003ca href=\"https://github.com/excid3\"\u003e\u003ccode\u003e@​excid3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/742\"\u003ehotwired/turbo-rails#742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAcccept meta tag string arguments as well by \u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[fix \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/762\"\u003e#762\u003c/a\u003e] Forward broadcast_refresh_to options by \u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Model Class in Action and Frame helpers by \u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove legacy workaround for Rails \u0026lt; 7 by \u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix debouncer tests to wait on correct debouncer by \u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/767\"\u003ehotwired/turbo-rails#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict tests to \u003ccode\u003eminitest \u0026lt; 6\u003c/code\u003e by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/774\"\u003ehotwired/turbo-rails#774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e by \u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect broadcast suppressions on before/after actions by \u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/djmb\"\u003e\u003ccode\u003e@​djmb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/761\"\u003ehotwired/turbo-rails#761\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frenkel\"\u003e\u003ccode\u003e@​frenkel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/754\"\u003ehotwired/turbo-rails#754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OutlawAndy\"\u003e\u003ccode\u003e@​OutlawAndy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/763\"\u003ehotwired/turbo-rails#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/afrase\"\u003e\u003ccode\u003e@​afrase\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/597\"\u003ehotwired/turbo-rails#597\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drjayvee\"\u003e\u003ccode\u003e@​drjayvee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/766\"\u003ehotwired/turbo-rails#766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Vivalldi\"\u003e\u003ccode\u003e@​Vivalldi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/736\"\u003ehotwired/turbo-rails#736\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stowersjoshua\"\u003e\u003ccode\u003e@​stowersjoshua\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/770\"\u003ehotwired/turbo-rails#770\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.20...v2.0.21\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.20\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.19...v2.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.19\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\"\u003ehttps://github.com/hotwired/turbo-rails/compare/v2.0.17...v2.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in README.md by \u003ca href=\"https://github.com/brunocalmels\"\u003e\u003ccode\u003e@​brunocalmels\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/746\"\u003ehotwired/turbo-rails#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove compact call on locals in broadcast_rendering_with_defaults by \u003ca href=\"https://github.com/mathias234\"\u003e\u003ccode\u003e@​mathias234\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/pull/720\"\u003ehotwired/turbo-rails#720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/435135b26a4b62e49d2f55bb4b1fd419e3bfb228\"\u003e\u003ccode\u003e435135b\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/22701f1fa326fc936b878c47b6f3d42ebef727ed\"\u003e\u003ccode\u003e22701f1\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.23\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/27030b956b107e864258aff0c48c2ed7a36ef3fc\"\u003e\u003ccode\u003e27030b9\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/52cde052aa00c6f7b0ce8cd10d2fefdcbe1e3255\"\u003e\u003ccode\u003e52cde05\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/e511fb28c464ea9f3b3ddec3c1250d2b2c4b5313\"\u003e\u003ccode\u003ee511fb2\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/99dc9c5445166f0335d0a2fc15da3e7969fc913a\"\u003e\u003ccode\u003e99dc9c5\u003c/code\u003e\u003c/a\u003e \u003ccode\u003e@​hotwired/turbo-rails\u003c/code\u003e v8.0.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/c2cd99fae9440aee6c1c836578c6dbf6067f7ee0\"\u003e\u003ccode\u003ec2cd99f\u003c/code\u003e\u003c/a\u003e v8.0.21\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/31c78af6c1d16070bbb25b68402a2c700a386c1a\"\u003e\u003ccode\u003e31c78af\u003c/code\u003e\u003c/a\u003e Respect broadcast suppressions on before/after actions (\u003ca href=\"https://redirect.github.com/hotwired/turbo-rails/issues/770\"\u003e#770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/16f76133cbef0cfec65a3c8693d795670fb725ac\"\u003e\u003ccode\u003e16f7613\u003c/code\u003e\u003c/a\u003e Only return messages produced by block in \u003ccode\u003ecapture_turbo_stream_broadcasts\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hotwired/turbo-rails/commit/dda27a8b903a27958fd2e4086babcfbaba648a94\"\u003e\u003ccode\u003edda27a8\u003c/code\u003e\u003c/a\u003e Restrict tests to \u003ccode\u003eminitest\u0026lt;6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hotwired/turbo-rails/compare/v2.0.16...v2.0.23\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.4.0 to 5.4.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-rb/blob/master/CHANGELOG.md\"\u003eredis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.4.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly handle NOSCRIPT errors.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/6784a3204be44d4ca7891a901295e4a4007a13a5\"\u003e\u003ccode\u003e6784a32\u003c/code\u003e\u003c/a\u003e Release 5.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/c205a8c7f22a3d387cb3cf9a8816e7a32f748c5c\"\u003e\u003ccode\u003ec205a8c\u003c/code\u003e\u003c/a\u003e Require redis-client earlier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/16c78555caeb580ab6c5365f8979259faab3142d\"\u003e\u003ccode\u003e16c7855\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1312\"\u003e#1312\u003c/a\u003e from redis/translate-ensure-connected\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/08a3290ea65214e2af09d456dc0439082362782f\"\u003e\u003ccode\u003e08a3290\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ewithout_reconnect\u003c/code\u003e to wrap redis-client exceptions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/8408c0365b72b4c655a95af7934d2fad50d2d33c\"\u003e\u003ccode\u003e8408c03\u003c/code\u003e\u003c/a\u003e Update redis release URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/317a0204d8361927757117845f825b42c26fac14\"\u003e\u003ccode\u003e317a020\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/redis/redis-rb/issues/1311\"\u003e#1311\u003c/a\u003e from redis/specialize-evalsha-noscript-error\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/d9f004fa08886309c3b4068488e057801786f836\"\u003e\u003ccode\u003ed9f004f\u003c/code\u003e\u003c/a\u003e Fix a mistake in test_hrandfield\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-rb/commit/57c79c2b7ccbf46d6964cc5104d52f41911e70fe\"\u003e\u003ccode\u003e57c79c2\u003c/code\u003e\u003c/a\u003e Handle RedisClient::NoScriptError\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-rb/compare/v5.4.0...v5.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `data_migrate` from 11.3.0 to 11.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ajvargo/data-migrate/releases\"\u003edata_migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.3.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSchema version -- do formatted version like activerecord by \u003ca href=\"https://github.com/mcyoung\"\u003e\u003ccode\u003e@​mcyoung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eresolve ActiveSupport::Configurable deprecation in Rails 8.2 by \u003ca href=\"https://github.com/stuarth\"\u003e\u003ccode\u003e@​stuarth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 in Appraisal by \u003ca href=\"https://github.com/vprigent\"\u003e\u003ccode\u003e@​vprigent\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/366\"\u003eilyakatz/data-migrate#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mcyoung\"\u003e\u003ccode\u003e@​mcyoung\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stuarth\"\u003e\u003ccode\u003e@​stuarth\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ilyakatz/data-migrate/compare/11.3.0...11.3.1\"\u003ehttps://github.com/ilyakatz/data-migrate/compare/11.3.0...11.3.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ilyakatz/data-migrate/blob/main/Changelog.md\"\u003edata_migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e11.3.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eSchema version -- do formatted version like activerecord \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/363\"\u003eilyakatz/data-migrate#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve ActiveSupport::Configurable deprecation in Rails 8.2 \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/365\"\u003eilyakatz/data-migrate#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Rails 8.1 in Appraisal \u003ca href=\"https://redirect.github.com/ilyakatz/data-migrate/pull/366\"\u003eilyakatz/data-migrate#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/a59d19af73b1959d2eba82cdd1022e07be4c531f\"\u003e\u003ccode\u003ea59d19a\u003c/code\u003e\u003c/a\u003e Release version 11.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/cae2c27ff1aef869ce20df04d2de3f49ba6f3b7d\"\u003e\u003ccode\u003ecae2c27\u003c/code\u003e\u003c/a\u003e Add support for Rails 8.1 in Appraisal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/0b20948ec61d441c97bc9e21c17471322f1b74ba\"\u003e\u003ccode\u003e0b20948\u003c/code\u003e\u003c/a\u003e Resolve ActiveSupport::Configurable deprecation in Rails 8.2 (\u003ca href=\"https://redirect.github.com/ajvargo/data-migrate/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ilyakatz/data-migrate/commit/d4cebfad06b13a1fd30050986320436cae965352\"\u003e\u003ccode\u003ed4cebfa\u003c/code\u003e\u003c/a\u003e Schema version -- do formatted version like activerecord\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ajvargo/data-migrate/compare/11.3.0...11.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bootsnap` from 1.18.6 to 1.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/releases\"\u003ebootsnap's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.22.0...v1.23.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.22.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eProper fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.1...v1.22.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.21.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFallback to pure the pure ruby path scanner on unexpected error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.21.0...v1.21.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\"\u003ehttps://github.com/rails/bootsnap/compare/v1.20.0...v1.20.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.20.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\"\u003ehttps://github.com/rails/bootsnap/compare/v1.19.0...v1.20.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/rails/bootsnap/blob/main/CHANGELOG.md\"\u003ebootsnap's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.23.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Ruby 2.7.\u003c/li\u003e\n\u003cli\u003eFix support for absolute paths in \u003ccode\u003eBOOTSNAP_IGNORE_DIRECTORIES\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.22.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eBetter fix for the \u003ccode\u003eopendir\u003c/code\u003e crash.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ebootsnap/rake\u003c/code\u003e for cleaning the bootsnap cache as part of \u003ccode\u003erake clobber\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent a Ruby crash while scanning load path if \u003ccode\u003eopendir\u003c/code\u003e fails without setting \u003ccode\u003eerrno\u003c/code\u003e.\nAccording to the C spec this should not happen, but according to user reports, it did.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.21.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix the \u003ccode\u003erequire\u003c/code\u003e decorator to handle \u003ccode\u003eBootsnap.unload_cache!\u003c/code\u003e being called.\u003c/li\u003e\n\u003cli\u003eMinor optimization: Eagerly clear cache buffers to appease the GC.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eHandle broken symlinks in load path scanning code.\nShould fix \u003ccode\u003eErrno::ENOENT fstatat\u003c/code\u003e issues some users have encountered after upgrading to 1.20.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.20.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eOptimized load path scanning with a C extension. Should be about 2x faster on supported platforms.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.19.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemove JSON parsing cache. Recent versions of the \u003ccode\u003ejson\u003c/code\u003e gem are as fast as \u003ccode\u003emsgpack\u003c/code\u003e if not faster.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/7b04583c5a242ef8e3a7dac907b9f682c6d2f20d\"\u003e\u003ccode\u003e7b04583\u003c/code\u003e\u003c/a\u003e Release 1.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/32e709d4168422433ca4f06e5aaec510dd87f882\"\u003e\u003ccode\u003e32e709d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/530\"\u003e#530\u003c/a\u003e from fxn/readdir\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/8326783ad7f2dd17681fd080a6144aa83e03478c\"\u003e\u003ccode\u003e8326783\u003c/code\u003e\u003c/a\u003e Handle readdir errors in bs_rb_scan_dir()\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/780728416ab3eff3c39093246542eb75168a157c\"\u003e\u003ccode\u003e7807284\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/528\"\u003e#528\u003c/a\u003e from Umofomia/path-scanner-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c30155d2d55e3dee46453071e1b21fba81a8295f\"\u003e\u003ccode\u003ec30155d\u003c/code\u003e\u003c/a\u003e Fix bundle path check and consolidate common code in PathScanner\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/c2ef9a36c3ae67338e57aacd98d3399333ea0bc2\"\u003e\u003ccode\u003ec2ef9a3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/526\"\u003e#526\u003c/a\u003e from Umofomia/claw--fix-ignored-directories-absolute-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/93c35b83fd326ebfea4fb45f8cdd37c7c233222a\"\u003e\u003ccode\u003e93c35b8\u003c/code\u003e\u003c/a\u003e LoadPathScanner: Avoid computing the absolute path when not needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/2bf7aa4f248d3a730a26ee281ee7266dc0ba2c8d\"\u003e\u003ccode\u003e2bf7aa4\u003c/code\u003e\u003c/a\u003e Fix absolute path support for ignored directories in PathScanner.native_call\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/749bf76af511e3cbd5531a19b46a8974c7fcd968\"\u003e\u003ccode\u003e749bf76\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/rails/bootsnap/issues/527\"\u003e#527\u003c/a\u003e from byroot/ruby-2.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rails/bootsnap/commit/52411892e2bc2d99ba23079e903bb2c2eea5572b\"\u003e\u003ccode\u003e5241189\u003c/code\u003e\u003c/a\u003e Require Ruby 2.7\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/rails/bootsnap/compare/v1.18.6...v1.23.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debug` from 1.10.0 to 1.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ruby/debug/releases\"\u003edebug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecommand\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eb path: path_pattern\u003c/code\u003e is accepted in \u003ca href=\"https://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\"\u003ehttps://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003efix\n\u003cul\u003e\n\u003cli\u003ecatch any exception on \u003ccode\u003esingletonclass\u003c/code\u003e by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1163\"\u003eruby/debug#1163\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse \u003ccode\u003eKernel.__callee__\u003c/code\u003e by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1164\"\u003eruby/debug#1164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFileUtils is needed by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1168\"\u003eruby/debug#1168\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ecatch up Ruby 4.0\n\u003cul\u003e\n\u003cli\u003eUpdate imemo_mask to match ruby's by \u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1151\"\u003eruby/debug#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebacktrace changes \u003ca href=\"https://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\"\u003ehttps://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eremote\n\u003cul\u003e\n\u003cli\u003efix(DAP): Return unverified breakpoints instead of unsuccessful response by \u003ca href=\"https://github.com/dmlambo\"\u003e\u003ccode\u003e@​dmlambo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1161\"\u003eruby/debug#1161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003emisc\n\u003cul\u003e\n\u003cli\u003eomit on older version by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1167\"\u003eruby/debug#1167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/byroot\"\u003e\u003ccode\u003e@​byroot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1151\"\u003eruby/debug#1151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dmlambo\"\u003e\u003ccode\u003e@​dmlambo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1161\"\u003eruby/debug#1161\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ruby/debug/compare/v1.11.0...v1.11.1\"\u003ehttps://github.com/ruby/debug/compare/v1.11.0...v1.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eConfigurations\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eshow_src_lines_frame\u003c/code\u003e option by \u003ca href=\"https://github.com/HeyNonster\"\u003e\u003ccode\u003e@​HeyNonster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1138\"\u003eruby/debug#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eno_repeat\u003c/code\u003e option by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1140\"\u003eruby/debug#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport XDG directories for config and history files by \u003ca href=\"https://github.com/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1055\"\u003eruby/debug#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix hitory file path by \u003ca href=\"https://github.com/ko1\"\u003e\u003ccode\u003e@​ko1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1146\"\u003eruby/debug#1146\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix\n\u003cul\u003e\n\u003cli\u003eFix FrameInfo#block_identifier by \u003ca href=\"https://github.com/andrepiske\"\u003e\u003ccode\u003e@​andrepiske\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1137\"\u003eruby/debug#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe debug gem can abort when stepping into a rescue clause: by \u003ca href=\"https://github.com/mame\"\u003e\u003ccode\u003e@​mame\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1142\"\u003eruby/debug#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly skip TracePoint events in internal code by \u003ca href=\"https://github.com/mame\"\u003e\u003ccode\u003e@​mame\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1143\"\u003eruby/debug#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix encoding crash when LANG environment is empty by \u003ca href=\"https://github.com/jsxs0\"\u003e\u003ccode\u003e@​jsxs0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1144\"\u003eruby/debug#1144\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMisc\n\u003cul\u003e\n\u003cli\u003eNormalize formatting, grammar, etc… by \u003ca href=\"https://github.com/stevenharman\"\u003e\u003ccode\u003e@​stevenharman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1136\"\u003eruby/debug#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix help message of the \u003ccode\u003eeval\u003c/code\u003e command by \u003ca href=\"https://github.com/matthieuprat\"\u003e\u003ccode\u003e@​matthieuprat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1130\"\u003eruby/debug#1130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelf-document the XDG_STATE_HOME fallback by \u003ca href=\"https://github.com/jasonkarns\"\u003e\u003ccode\u003e@​jasonkarns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1148\"\u003eruby/debug#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HeyNonster\"\u003e\u003ccode\u003e@​HeyNonster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1138\"\u003eruby/debug#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andrepiske\"\u003e\u003ccode\u003e@​andrepiske\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1137\"\u003eruby/debug#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stevenharman\"\u003e\u003ccode\u003e@​stevenharman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1136\"\u003eruby/debug#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/matthieuprat\"\u003e\u003ccode\u003e@​matthieuprat\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1130\"\u003eruby/debug#1130\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jsxs0\"\u003e\u003ccode\u003e@​jsxs0\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1144\"\u003eruby/debug#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jgarber623\"\u003e\u003ccode\u003e@​jgarber623\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1055\"\u003eruby/debug#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jasonkarns\"\u003e\u003ccode\u003e@​jasonkarns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ruby/debug/pull/1148\"\u003eruby/debug#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/bad4d38f8330219b62f2b253d59146f5a71fd39a\"\u003e\u003ccode\u003ebad4d38\u003c/code\u003e\u003c/a\u003e v1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/88d762c8c9b157e3a2627ac3de0df1d5cb8dace5\"\u003e\u003ccode\u003e88d762c\u003c/code\u003e\u003c/a\u003e FileUtils is needed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/553373a59f655177dabb2cef952ad1fae1d55fa4\"\u003e\u003ccode\u003e553373a\u003c/code\u003e\u003c/a\u003e omit on older version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/c1c1c8e2533096e82d2888170f18d7cc990407fd\"\u003e\u003ccode\u003ec1c1c8e\u003c/code\u003e\u003c/a\u003e use \u003ccode\u003eKernel.__callee__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/24f95d637d96d92eb249e1ca45f3550832b5307f\"\u003e\u003ccode\u003e24f95d6\u003c/code\u003e\u003c/a\u003e catch up 4.0.0 backtrace change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/bc97d3387deb4357419e9ebc6c40f809d1858527\"\u003e\u003ccode\u003ebc97d33\u003c/code\u003e\u003c/a\u003e add a test for \u003ccode\u003eb path: ...\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/1139d781ffde33a1ae6de04e718269cf8e4b0d09\"\u003e\u003ccode\u003e1139d78\u003c/code\u003e\u003c/a\u003e support \u003ccode\u003eb path: path_expr\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/06342cd77a11af814c91726f7e5bc3f1974be9df\"\u003e\u003ccode\u003e06342cd\u003c/code\u003e\u003c/a\u003e catch any exception on \u003ccode\u003esingletonclass\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/2791573fd24aef2091cbb30aa8750f3117781752\"\u003e\u003ccode\u003e2791573\u003c/code\u003e\u003c/a\u003e fix(DAP): Return unverified breakpoints instead of unsuccessful response\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ruby/debug/commit/14c8a546242a5e88ed8f47607629ffbef7d3315d\"\u003e\u003ccode\u003e14c8a54\u003c/code\u003e\u003c/a\u003e Update imemo_mask to match ruby's\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ruby/debug/compare/v1.10.0...v1.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `factory_bot_rails` from 6.4.4 to 6.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/releases\"\u003efactory_bot_rails's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.5.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Cucumber tests by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/536\"\u003ethoughtbot/factory_bot_rails#536\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003erequired_ruby_version\u003c/code\u003e to require \u0026gt;= Ruby 3.1 by \u003ca href=\"https://github.com/y-yagi\"\u003e\u003ccode\u003e@​y-yagi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/538\"\u003ethoughtbot/factory_bot_rails#538\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd vburzynski as codeowner by \u003ca href=\"https://github.com/DoodlingDev\"\u003e\u003ccode\u003e@​DoodlingDev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/539\"\u003ethoughtbot/factory_bot_rails#539\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AuthenticationGenerator for users factory creation by \u003ca href=\"https://github.com/rodrigotoledo\"\u003e\u003ccode\u003e@​rodrigotoledo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/542\"\u003ethoughtbot/factory_bot_rails#542\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rodrigotoledo\"\u003e\u003ccode\u003e@​rodrigotoledo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/542\"\u003ethoughtbot/factory_bot_rails#542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DoodlingDev\"\u003e\u003ccode\u003e@​DoodlingDev\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/539\"\u003ethoughtbot/factory_bot_rails#539\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.5.0...v6.5.1\"\u003ehttps://github.com/thoughtbot/factory_bot_rails/compare/v6.5.0...v6.5.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e6.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby 3.0 by \u003ca href=\"https://github.com/FerPerales\"\u003e\u003ccode\u003e@​FerPerales\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/507\"\u003ethoughtbot/factory_bot_rails#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRead gem version from code file by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/506\"\u003ethoughtbot/factory_bot_rails#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing required Ruby version to gemspec by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/510\"\u003ethoughtbot/factory_bot_rails#510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Bundler to v2.5.23 by \u003ca href=\"https://github.com/smaboshe\"\u003e\u003ccode\u003e@​smaboshe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/515\"\u003ethoughtbot/factory_bot_rails#515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix standardrb violations by \u003ca href=\"https://github.com/sarahraqueld\"\u003e\u003ccode\u003e@​sarahraqueld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/482\"\u003ethoughtbot/factory_bot_rails#482\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eActivate linter in CI by \u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/508\"\u003ethoughtbot/factory_bot_rails#508\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003efile_fixture\u003c/code\u003e in Factory definitions by \u003ca href=\"https://github.com/seanpdoyle\"\u003e\u003ccode\u003e@​seanpdoyle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/427\"\u003ethoughtbot/factory_bot_rails#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix development dependencies by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/526\"\u003ethoughtbot/factory_bot_rails#526\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Rails 7.2 by \u003ca href=\"https://github.com/RajRoR\"\u003e\u003ccode\u003e@​RajRoR\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/495\"\u003ethoughtbot/factory_bot_rails#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit \u003ccode\u003epush\u003c/code\u003e builds to the \u003ccode\u003emain\u003c/code\u003e branch by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/527\"\u003ethoughtbot/factory_bot_rails#527\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support for rails v8 by \u003ca href=\"https://github.com/jamesoneill997\"\u003e\u003ccode\u003e@​jamesoneill997\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/521\"\u003ethoughtbot/factory_bot_rails#521\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd latest Ruby and Rails versions to the build by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/529\"\u003ethoughtbot/factory_bot_rails#529\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate gemspec with supported Rails version by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/531\"\u003ethoughtbot/factory_bot_rails#531\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun Cucumber feature tests on CI by \u003ca href=\"https://github.com/neilvcarvalho\"\u003e\u003ccode\u003e@​neilvcarvalho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/530\"\u003ethoughtbot/factory_bot_rails#530\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FerPerales\"\u003e\u003ccode\u003e@​FerPerales\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/507\"\u003ethoughtbot/factory_bot_rails#507\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/unused\"\u003e\u003ccode\u003e@​unused\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/506\"\u003ethoughtbot/factory_bot_rails#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RajRoR\"\u003e\u003ccode\u003e@​RajRoR\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/495\"\u003ethoughtbot/factory_bot_rails#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jamesoneill997\"\u003e\u003ccode\u003e@​jamesoneill997\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/pull/521\"\u003ethoughtbot/factory_bot_rails#521\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.0\"\u003ehttps://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/blob/main/NEWS.md\"\u003efactory_bot_rails's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.5.1 (September 5, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: Add AuthenticationGenerator for users factory creation (Rodrigo Toledo)\u003c/li\u003e\n\u003cli\u003eChanged: Update required_ruby_version to require \u0026gt;= Ruby 3.1 (y-yagi)\u003c/li\u003e\n\u003cli\u003eInternal: Fix Cucumber tests (Neil Carvalho)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.5.0 (June 13, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd: First-party support for \u003ca href=\"https://api.rubyonrails.org/classes/ActiveSupport/Testing/FileFixtures.html#method-i-file_fixture\"\u003e\u003ccode\u003efile_fixture\u003c/code\u003e\u003c/a\u003e within factory blocks (Sean Doyle)\u003c/li\u003e\n\u003cli\u003eChanged: Drop support for Ruby 3.0 (Fernando Perales)\u003c/li\u003e\n\u003cli\u003eChanged: Add required Ruby version to the gemspec (Christoph Lipautz)\u003c/li\u003e\n\u003cli\u003eInternal: Add Rails 7.2 to the test matrix (Raj Kumar)\u003c/li\u003e\n\u003cli\u003eInternal: Add Rails 8.0 to the test matrix (James O'Neill)\u003c/li\u003e\n\u003cli\u003eInternal: Run \u003ccode\u003estandardrb\u003c/code\u003e on CI runs (Christoph Lipautz)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/dfdef4c70a76d36058cf77fc1ccd9904a2bf0beb\"\u003e\u003ccode\u003edfdef4c\u003c/code\u003e\u003c/a\u003e Bump to 6.5.1 (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/543\"\u003e#543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/b6c4e8d1fc495806f3ee353e79a5470d3f2638a6\"\u003e\u003ccode\u003eb6c4e8d\u003c/code\u003e\u003c/a\u003e Add AuthenticationGenerator for users factory creation (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/542\"\u003e#542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/364bd890bfcfb538fa31318759c93d7e5c4e11a1\"\u003e\u003ccode\u003e364bd89\u003c/code\u003e\u003c/a\u003e add vburzynski as codeowner (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/8e45bc342682b610952935354fa478bbe616390f\"\u003e\u003ccode\u003e8e45bc3\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003erequired_ruby_version\u003c/code\u003e to require \u0026gt;= Ruby 3.1 (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/538\"\u003e#538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/6b757ebab3c9420b014fe69812f8ed0c5a77873f\"\u003e\u003ccode\u003e6b757eb\u003c/code\u003e\u003c/a\u003e Fix Cucumber tests (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/44acf670588ab5a24bddfd75415011c5c2373e2f\"\u003e\u003ccode\u003e44acf67\u003c/code\u003e\u003c/a\u003e Bump to 6.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/83109a5ff2a0601df21547a56797635616e0d8eb\"\u003e\u003ccode\u003e83109a5\u003c/code\u003e\u003c/a\u003e Run Cucumber feature tests on CI (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/b2047c108c90341c351aeaa5cfe5fc9af715bcdb\"\u003e\u003ccode\u003eb2047c1\u003c/code\u003e\u003c/a\u003e Update gemspec with supported Rails version (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/c17c161b2370c7bce0b95d54f72337f8dd62c213\"\u003e\u003ccode\u003ec17c161\u003c/code\u003e\u003c/a\u003e Add latest Ruby and Rails versions to the build (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/commit/2e30e1737977ad1e07dd0f46306def09712f56fb\"\u003e\u003ccode\u003e2e30e17\u003c/code\u003e\u003c/a\u003e Add Rails 8 to the build matrix (\u003ca href=\"https://redirect.github.com/thoughtbot/factory_bot_rails/issues/521\"\u003e#521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/thoughtbot/factory_bot_rails/compare/v6.4.4...v6.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `faker` from 3.5.1 to 3.6.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/releases\"\u003efaker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003cp\u003eIt's Spring countdown in the Northern hemisphere 🌸\u003c/p\u003e\n\u003ch2\u003eSecurity, performance improvements and bug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: polynomial regex on uncontrolled input by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3196\"\u003efaker-ruby/faker#3196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: replaces list of postcodes in \u003ccode\u003eja/address.yml\u003c/code\u003e with a 7-digit format by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3201\"\u003efaker-ruby/faker#3201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary whitespace from code blocks in READMEs by \u003ca href=\"https://github.com/ryotaro-shirai\"\u003e\u003ccode\u003e@​ryotaro-shirai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3209\"\u003efaker-ruby/faker#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument lazy load experiment results by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3205\"\u003efaker-ruby/faker#3205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[skip ci] Add-backtick by \u003ca href=\"https://github.com/OzuAkira\"\u003e\u003ccode\u003e@​OzuAkira\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3210\"\u003efaker-ruby/faker#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eZeitwerk experiment changes and results [skip ci] by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3213\"\u003efaker-ruby/faker#3213\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove duplicate reference link in README.md by \u003ca href=\"https://github.com/yutasb\"\u003e\u003ccode\u003e@​yutasb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3217\"\u003efaker-ruby/faker#3217\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eUpdate development dependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump rubocop from 1.84.0 to 1.84.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3202\"\u003efaker-ruby/faker#3202\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump irb from 1.16.0 to 1.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3203\"\u003efaker-ruby/faker#3203\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop version and fix offenses by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3198\"\u003efaker-ruby/faker#3198\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rdoc from 7.1.0 to 7.2.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3204\"\u003efaker-ruby/faker#3204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop to 1.84.2 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3215\"\u003efaker-ruby/faker#3215\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop-minitest from 0.38.2 to 0.39.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3216\"\u003efaker-ruby/faker#3216\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump rubocop to v1.85.0 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3220\"\u003efaker-ruby/faker#3220\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ryotaro-shirai\"\u003e\u003ccode\u003e@​ryotaro-shirai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3209\"\u003efaker-ruby/faker#3209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/OzuAkira\"\u003e\u003ccode\u003e@​OzuAkira\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3210\"\u003efaker-ruby/faker#3210\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yutasb\"\u003e\u003ccode\u003e@​yutasb\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3217\"\u003efaker-ruby/faker#3217\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/faker-ruby/faker/compare/v3.6.0...v3.6.1\"\u003ehttps://github.com/faker-ruby/faker/compare/v3.6.0...v3.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.6.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.6.0\"\u003ev3.6.0\u003c/a\u003e (2026-01-21)\u003c/h2\u003e\n\u003cp\u003eFirst release of the new year!\u003c/p\u003e\n\u003cp\u003eThis version comes with some performance improvements (speeds faker load time by 17%!) and removal of deprecated generators.\u003c/p\u003e\n\u003cp\u003eIt also drops support to Ruby's EOL \u003ccode\u003e3.0\u003c/code\u003e. The minimum supported Ruby version is \u003ccode\u003e3.1\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eDrops support for Ruby 3.0\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Ruby EOL 3.0 by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3167\"\u003efaker-ruby/faker#3167\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoves deprecated generators\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eFaker::Twitter\u003c/code\u003e and \u003ccode\u003eFaker::BossaNova\u003c/code\u003e have been removed. Please use the new generators \u003ccode\u003eFaker::X\u003c/code\u003e and \u003ccode\u003eFaker::Music::BossaNova\u003c/code\u003e and check the new docs for more details in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3190\"\u003efaker-ruby/faker#3190\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements and bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAutoload OpenSSL by \u003ca href=\"https://github.com/stefannibrasil\"\u003e\u003ccode\u003e@​stefannibrasil\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3188\"\u003efaker-ruby/faker#3188\u003c/a\u003e - this speeds faker load time by 17%!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/faker-ruby/faker/blob/main/CHANGELOG.md\"\u003efaker's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/faker-ruby/faker/tree/v3.6.1\"\u003ev3.6.1\u003c/a\u003e (2026-03-04)\u003c/h2\u003e\n\u003cp\u003eIt's almost Spring time in the Northern hemisphere 🌸\u003c/p\u003e\n\u003ch3\u003eSecurity, performance improvements and bug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: polynomial regex on uncontrolled input by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3196\"\u003efaker-ruby/faker#3196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eperf: replaces list of postcodes in \u003ccode\u003eja/address.yml\u003c/code\u003e with a 7-digit format by \u003ca href=\"https://github.com/thdaraujo\"\u003e\u003ccode\u003e@​thdaraujo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/faker-ruby/faker/pull/3201\"\u003efaker-ruby/faker#3201\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unnecessary whitespace from code blocks in READMEs by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/bendycode/prmetrics/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/bendycode%2Fprmetrics/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"1.6.2","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-04-07T10:35:30.000Z","version_change":"1.6.2 → 1.6.3","issue":{"uuid":"4217082207","node_id":"PR_kwDOQfHUuM7QdYn3","number":5,"state":"closed","title":"chore(deps): bump pg from 1.6.2 to 1.6.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-12T04:02:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-07T10:35:30.000Z","updated_at":"2026-04-12T04:02:51.000Z","time_to_close":408439,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.2 to 1.6.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.2\u0026new-version=1.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/vibers-leo/dlab/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vibers-leo%2Fdlab/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"1.6.2","new_version":"1.6.3","update_type":"patch","path":null,"pr_created_at":"2026-04-06T11:54:07.000Z","version_change":"1.6.2 → 1.6.3","issue":{"uuid":"4211467817","node_id":"PR_kwDOR7C4sc7QMdKy","number":10,"state":"closed","title":"Bump pg from 1.6.2 to 1.6.3","user":"dependabot[bot]","labels":["dependencies","ruby"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-07T01:32:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-06T11:54:07.000Z","updated_at":"2026-04-07T01:32:41.000Z","time_to_close":49102,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"pg","old_version":"1.6.2","new_version":"1.6.3","repository_url":"https://github.com/ged/ruby-pg"}],"path":null,"ecosystem":"rubygems"},"body":"Bumps [pg](https://github.com/ged/ruby-pg) from 1.6.2 to 1.6.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ged/ruby-pg/blob/master/CHANGELOG.md\"\u003epg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.3 [2025-12-29] Lars Kanis \u003ca href=\"mailto:lars@greiz-reinsdorf.de\"\u003elars@greiz-reinsdorf.de\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAdded:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd binary gems for ruby-4.0, now providing ruby-3.0 to 4.0. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate fat binary gem to OpenSSL-3.6.0 and PostgreSQL-18.1.\u003c/li\u003e\n\u003cli\u003eImprove documentation of PG::Result and README. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/676\"\u003e#676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate errorcodes to PostgreSQL-18.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003erb_hash_new_capa\u003c/code\u003e on Ruby-3.2+ . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeny any server communication on a frozen PG::Connection . \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/677\"\u003e#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix possible race condition in PG::Result in Ractor context. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/674\"\u003e#674\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eRemoved:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop binary gem support for platform \u003ccode\u003ex86-mingw32\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/ged/ruby-pg/pull/682\"\u003e#682\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop binary gems for ruby-2.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/d4539c25dcc89d47088e1423f8d1915c041920f5\"\u003e\u003ccode\u003ed4539c2\u003c/code\u003e\u003c/a\u003e Bump VERSION to pg-1.6.3 and add release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/720900dbb9d16aa855793146f15c3772e14f627a\"\u003e\u003ccode\u003e720900d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/682\"\u003e#682\u003c/a\u003e from larskanis/ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/f605b5937093884089109c8baa5fe268fc513eaf\"\u003e\u003ccode\u003ef605b59\u003c/code\u003e\u003c/a\u003e Remove x86-mingw32 from binary builds\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/5c690006ba158da70d73d939a233cf75ecdd30ef\"\u003e\u003ccode\u003e5c69000\u003c/code\u003e\u003c/a\u003e Update to ruby-4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/2acaf3d0f76334e056229efe260e1f558a8c6b42\"\u003e\u003ccode\u003e2acaf3d\u003c/code\u003e\u003c/a\u003e CI: workaround missing ruby-4.0 on Window\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/b500ded81127963603e1f724e82bed649c9ca8a1\"\u003e\u003ccode\u003eb500ded\u003c/code\u003e\u003c/a\u003e fix comment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/bc3f2f8b1110e9bcb225d65554e1a7fc842d0506\"\u003e\u003ccode\u003ebc3f2f8\u003c/code\u003e\u003c/a\u003e CI: Macos-13 on Intel is deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/77667eb4313bd7b79356f402b0fa7fba409483b8\"\u003e\u003ccode\u003e77667eb\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/ged/ruby-pg/issues/678\"\u003e#678\u003c/a\u003e from larskanis/ci-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6e52ce504d05c5359d55f45d9580672103263b54\"\u003e\u003ccode\u003e6e52ce5\u003c/code\u003e\u003c/a\u003e CI: Update PostgreSQL on Macos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ged/ruby-pg/commit/6d40f50e51a037022495fe6d98181435652464ff\"\u003e\u003ccode\u003e6d40f50\u003c/code\u003e\u003c/a\u003e CI: Print mkmf.log on failure on Macos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ged/ruby-pg/compare/v1.6.2...v1.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pg\u0026package-manager=bundler\u0026previous-version=1.6.2\u0026new-version=1.6.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Rio-cyber-gif/specialty-sweets-journal-v2/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rio-cyber-gif%2Fspecialty-sweets-journal-v2/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}}]}